Create elegant and intuitive apps that integrate seamlessly with Apple platforms.

All subtopics

Post

Replies

Boosts

Views

Activity

How to handle adding and removing items from NavigationSplitView
Hello, I'm new to app development and have a question that I have been searching all over the place to find an answer to. I have followed Apple's own guides and don't know how to move around the strange issue I am experiencing. I have a project using NavigationSplitView and have the code setup so that it navigates through an array of items. The two issues I am experiencing that I hope to find some help with are: I would like to be able to have my add button, instead of presenting a sheet, just navigate to a new item within the NavigationSplitView. This would be more natural for the type of data application I have created. At this time I create the item with a .sheet modifier and then the item is created and added to the array. However, I then have to tap on the newly created item to get it to be selected. Is this how SwiftUI should be working? Whenever an item is deleted from the list, and it was the last item selected or the last item in the array, the NavigationSplitView will continue showing that remaining item. The only way to get it to show an empty content screen is to force close the application and then reopen it. Since this is my first time posting, I'm not sure what information would be helpful, but would be happy to provide anything which could be of assistance. :-)
6
0
612
Jun ’24
.fullScreenCover Incorrectly Dismissed
Hi, thought I'd share some feedback (which was also sent to Apple) publicly in case anyone else is experiencing the same issue or has an idea of how to circumvent the issue while Apple investigates. TLDR: Views presented with the .fullScreenCover modifier can be incorrectly dismissed when a child view presented with a .sheet modifier inside the .fullScreenCover is dismissed. The intended behavior is that the child sheet views can be dismissed without dismissing the parent full screen cover views. It appears this bug has been present in versions of iOS 17 as well as iOS 18. Short of using something other than a .fullScreenCover to present the view, I'm still searching for a solution to this bug. Filing: FB14007758 Steps to Reproduce (see code below): Open a View in .fullScreenCover presentation In the view presented via the .fullScreenCover, add two sheet modifiers with two different views (e.g. SheetOneView, SheetTwoView) Toggle the presentation of SheetOneView and SheetTwoView randomly until the .fullScreenCover is incorrectly dismissed. Reproducible Code: import SwiftUI struct SheetOneView: View { var body: some View { Text("Sheet: 1") } } struct SheetTwoView: View { var body: some View { Text("Sheet: 2") } } struct FullScreenCoverView: View { @State var isSheetOnePresented = false @State var isSheetTwoPresented = false var body: some View { VStack(content: { Text("Full Screen Cover") HStack { Button("Open Sheet 1") { isSheetOnePresented = true } Button("Open Sheet 2") { isSheetTwoPresented = true } } .buttonStyle(.borderedProminent) .buttonBorderShape(.capsule) }) .sheet(isPresented: $isSheetOnePresented) { SheetOneView() } .sheet(isPresented: $isSheetTwoPresented) { SheetTwoView() } } } struct ContentView: View { @State var isFullScreenCoverPresented = false var body: some View { VStack { Button("Open Full Screen Cover") { isFullScreenCoverPresented = true } } .fullScreenCover(isPresented: $isFullScreenCoverPresented, content: { FullScreenCoverView() }) .padding() } }
1
0
735
Jun ’24
iPhone and iPad Collaboration
Hello, I'm building apps for iPhone and iPad. Those are working together like a 2-screen Nintendo switch. Is there any way for communication between iPhone and iPad without an outside server? PAN(personal area network) could be a solution, but I could not find any information to use it for my case. If the iPad is connected to iPhone as a personal hotspot (though there's no cell tower), they should be communicate each other. I think there's a better way for my case. Could anyone can tell me where I start to looking for? Thanks, JJ
1
0
562
Jun ’24
Typography on Apple Watch Live Activity
I'm not quite sure whether this post belongs in a Design forum or here, but with iOS 18 Developer Beta 1 and watchOS 11 Developer Beta 1, when a Live Activity is displayed on an Apple Watch, the system font used is SF Pro rather than SF Compact. I would expect that the design guidance would be to stick with SF Compact while on watchOS, and I would expect that the system font, when displayed on the Apple Watch using .supplementalActivityFamilies([.small]), would appear as SF Compact. To ensure that SF Compact appears on my Live Activity when viewed on Apple Watch, I can set a custom font for use with the small supplemental family, but this seems really clunky; is there any other guidance here?
0
0
466
Jun ’24
SF Symbol License
Hi all, I am a UI/UX designer working on several commercial projects, and I have a few questions that I need you to answer: Can I use the icons from your SF Symbols set in my application? This is a SAAS application and is used on various platforms such as macOS and Windows. Is SF Symbols only allowed for use in applications running on Apple platforms? Meaning, if my application is used on a MacBook or iPhone, am I allowed to use your icon set? If usage is not permitted on platforms other than Apple’s, how can I legally use them on those platforms? Does Apple sell licenses for using SF Symbols on other platforms? If so, what is the cost? Looking forward to your response.
1
0
819
Jun ’24
UI not dynamically updating from push notifications fetchdata function
Hi All, I really need your help, I have been racking my brain to work out why, after a push notification triggers a fetchdata function from the server, my new bookings dont dynamically update the counter against the booking types. print("Received remote notification: \(userInfo)") if let dataInfo = userInfo["data"] as? [String: Any], let jsonData = try? JSONSerialization.data(withJSONObject: dataInfo) { print("Processing data from notification...") DispatchQueue.main.async { self.eventsViewModel.updateFromPushNotification(data: jsonData) { result in completionHandler(result) } } } else { print("Failed to parse notification data") completionHandler(.noData) } } func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { print("Failed to register for remote notifications: \(error)") } func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { print("Will present notification: \(notification.request.content.userInfo)") DispatchQueue.main.async { self.eventsViewModel.fetchData() } completionHandler([.banner, .badge, .sound]) } func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { print("Did receive notification response: \(response.notification.request.content.userInfo)") let userInfo = response.notification.request.content.userInfo if let fetchNeeded = userInfo["fetchNeeded"] as? Bool, fetchNeeded { print("Initiating data fetch due to user interaction...") DispatchQueue.main.async { self.eventsViewModel.fetchData() } } completionHandler() } @Published var bookings: [AnyBooking] = [] @Published var newBookings: [AnyBooking] = [] @Published var calendarBookings: [String: [AnyBooking]] = [:] @Published var selectedBooking: AnyBooking? private var cancellables = Set<AnyCancellable>() private let calendarManager = CalendarManager.shared // Add calendarManager func fetchData() { guard let url = URL(string: "https://allsound.wisewms.uk/webhook_get") else { print("Invalid URL for webhook request") return } var request = URLRequest(url: url) request.httpMethod = "GET" let task = URLSession.shared.dataTask(with: request) { [weak self] (data, response, error) in guard let self = self else { return } if let error = error { print("Error fetching data: \(error.localizedDescription)") return } if let data = data, !data.isEmpty { if let newBookings = self.processBookings(data: data) { DispatchQueue.main.async { self.bookings = newBookings self.separateAndOrganizeBookings(bookings: newBookings) } } else { print("Failed to process bookings.") } } else { print("No data received from server.") } } task.resume() } @main struct AllSoundApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate @StateObject var eventsViewModel = EventsViewModel() @Environment(\.scenePhase) var scenePhase @AppStorage("selectedTheme") private var selectedTheme: Theme = .system var body: some Scene { WindowGroup { ContentView() .environmentObject(eventsViewModel) .environmentObject(appDelegate.navigationCoordinator) .preferredColorScheme(selectedTheme.colorScheme) .onChange(of: scenePhase) { oldPhase, newPhase in if newPhase == .active { eventsViewModel.fetchData() } } } } }
2
0
373
Jun ’24
NavigationBar Back Button Color
I am trying to change the colour of the "Back" from blue to white but having difficulty do so, if anyone can suggest me a better way to do it would be grateful. "import UIKit class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let appearance = UINavigationBarAppearance() appearance.configureWithOpaqueBackground() appearance.backgroundColor = UIColor(red: 0.216, green: 0.776, blue: 0.349, alpha: 1) appearance.titleTextAttributes = [.foregroundColor: UIColor.white] appearance.largeTitleTextAttributes = [.foregroundColor: UIColor.white] UINavigationBar.appearance().standardAppearance = appearance UINavigationBar.appearance().scrollEdgeAppearance = appearance UINavigationBar.appearance().tintColor = .white return true } }"
1
1
713
Jun ’24
Carplay CPTabBarTemplate custom icons
Hello, I am a product designer trying to understand the UI design limitations of CarPlay. I am designing a scene where a CPTabBarTemplate will appear. From what I can read in the CarPlay development documentation, I understand that it should be possible to assign a custom icon for each tab with tabImage: UIImage?, if I am not mistaken. However, any reference I have found always uses SF Symbols, which makes me wonder if they can actually be customized. And on the other hand, if they are customizable, could any PNG be used for the tab that might compromise the driver's safety? Thank you in advance.
1
0
648
Jun ’24
Carplay Developer Documentation with examples
Hello, I am a product designer trying to understand the UI design limitations of CarPlay. Since CarPlay renders templates in a single way and there isn't any option to change any component, is there any way to see in the documentation how that component will look once rendered? For example, if I want to incorporate a primaryButton: CPTextButton? in my CPPointOfInterest. How could I know how each CPTextButtonStyle will be displayed? Is there an accessible place where I can check how each component will be visualized? Thank you in advance.
0
0
501
Jun ’24
iOS 18 (iPhone 15)
Hello there. I want to reporting about bug at iOS 18. Some feature doest not working like notification from aplication, and picture pagination is bad to see in apple music, and last the keyboard too. Please fixed it.
1
2
761
Jun ’24
Carplay Design Resources
Hello, I am a product designer and I am currently working on a project that incorporates functionalities in CarPlay. Given the UI limitations that exist for app development with CarPlay, are there any pre-designed templates in Figma or any other resources that can be used to design the screens? This way, I can adhere to those templates knowing what the limits are. Thank you very much for your attention.
2
1
911
Jun ’24
Mimic TV App back button in UIKit
Hi In my application I'm trying to recreate the behaviour of the back button in the Apple TV app on iOS. What I'm looking for is a way to have a material background but also making it possible to animate (with an interruptible animation) the transition when the user scrolls down in a scroll view. When searching around there seems to be 2 hacks which doesn't solve my problem. Either you add a static image for the back button, which doesn't solve any of the points I mentioned before. The other hack is to stop using the back button in the UINavigationBar and start leveraging the left button instead, which I don't want because you loose the swipe back gesture. Can you just pinpoint me what API I could use to get a similar look and feel?
0
0
310
Jun ’24
new idea for vs code and other ide
I am Justin, I am no developer but I think we should have a feature were we can upload our work with out playing money it is so much better.i think it is better then having young devs to save money then asking there parents for money to pay apple. Also Swift maybe a good language but I feel there should be a langue that can combine all the languages at once. Justin
1
0
534
Jun ’24
Attach virtual keyboard to project in Adobe XD
I'm creating a slate pad for Ipad with several input fields to fill using Adobe XD. How can I obtain and attach a virtual keyboard to fill these input fields? I found a video with a similar concept but on Iphone: https://www.youtube.com/watch?v=O7tPI0VuKd4&list=PLWeIX-zcNnqII-nzviv_yxT2WNQRRYbiG&index=3 In this other link, the video mentions that the virtual keyboard was obtained from a UI kit that Apple provides. But I've looked and looked and I can't find a page to download this virtual keyboard. Any ideas? https://www.youtube.com/watch?v=rosf7-zVYjY&t=122s
0
0
480
May ’24
Keeping the app stay connected to TCP server even if it is in background
Hello, We have an iOS application (navigation/mobility app) that we need to have it stay connected to TCP server even app is in background. We tried disabling screen lock. We tried having location permission as "always". But it is not consistent. Usually, after 15 minutes, TCP connection is disconnected. We are unable to run code on app's side if it is in the background. Our other workaround option is similar to WhatsApp or what every other companies / our rivals in the market do. Have a VOIP feature, use voip notification to wake up the app. But we really don't want to do that sort of thing. Any feedback and any ideas are welcomed. Thanks.
0
0
448
May ’24
Firebase Issue with my X Code
Hi, Looking for some guidance on getting my code approved through app connect. Based on the crash logs, it appears the application is experiencing crashes related to an EXC_CRASH (SIGABRT), which is typically triggered by the app receiving an abort signal, often as a result of an unhandled exception or other critical errors that cause the app to terminate abruptly. Any ideas on how to resolve?
1
0
440
May ’24