For my iOS game exported out of Unity LTS 2021 I have added the app icon in Xcode, and when installing the app on my iPhone the correct app icon appears everywhere (home screen, Settings etc.) expect for in the app switcher? Why is the wrong icon appearing in the app switcher?
Design
RSS for tagCreate elegant and intuitive apps that integrate seamlessly with Apple platforms.
Posts under Design tag
84 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hello,
I’m an aspiring full stack dev and I’m just wondering how the heck you get good UI AND UX. I’m currently moodboarding and seeing how things look in FigJam and then taking that and coding in Swift. I am struggling and my sanity is hanging on by a string 😂. So tell me, how do you get good UI and UX?
Hello! I am making an app in SwiftUI and find it hard to make good-looking UIs with SwiftUI when using the List. When having a big navigation bar, the list appears misaligned with the title.
This is a preview within Xcode. Don't know if that changes anything 🤷. Below is the code. I should note I am using Xcode 16 beta 3.
//
// SwiftUIView.swift
//
import SwiftUI
struct SwiftUIView: View {
struct D {
var id: Int
var name: String
var identifier: String
}
let items: [(Int, D)] = [
(0, D(id: 0, name: "Test One", identifier: "one.example.test")),
(1, D(id: 1, name: "Test One", identifier: "two.example.test")),
(2, D(id: 2, name: "Test One", identifier: "three.example.test")),
(3, D(id: 3, name: "Test One", identifier: "four.example.test"))
]
var body: some View {
NavigationStack {
List(items, id: \.1.id) { idx, d in
VStack(alignment: .leading) {
Text(d.name)
.bold()
Text(d.identifier)
}
}
.navigationTitle("Hello Title")
}
}
}
#Preview {
SwiftUIView()
}
I am trying to recreate the apple calendar in swiftui but I have issues creating scroll layout.
So I want to have:
When I scroll horizontally the hours on the side have to stay fixed but the header with the day number day String and the full day events have to scroll
When I scroll vertically the hours on the side have to move but the header don't
For the moment I have :
HStack(alignment: .top, spacing:0) {
// The hours on the side
LateralHours(height: geometry.size.height * 24/10) . offset(y: -offset)
ScrollViewReader { proxy in
ScrollView (.horizontal, showsIndicators: false) {
VStack {
// The day number and the full day events
Header(width: width)
ScrollView {
LazyHStack (spacing: 0) {
ForEach($loadedDays, id: \.self) { day in
// The day grid with the events
DayContentView(
cellHeight: geometry.size.height / 10,
width: width,
selectedEvent: $selectedEvent,
day: day,
store: $store,
modifiedEvent: $modifiedEvent
)
}
}
.frame(height: 24*geometry.size.height / 10)
// This code block is used to track the position of the scrollview position
.background( GeometryReader {
Color.clear.preference(key: ScrollOffsetPreferenceKey.self,
value: -$0.frame(in: .named("scroll")).origin.y)
})
.onPreferenceChange(ScrollOffsetPreferenceKey.self) { value in
offset = value
}
}
.coordinateSpace(name: "scroll")
}
}
.scrollTargetBehavior(.viewAligned)
.defaultScrollAnchor(.leading)
}
.scrollPosition(id: $position)
.frame(alignment: .topLeading)
}
So the hours on the side are in none of the scrollViews they are only modified through the .offset with the vertical scrollView position. My problem is that the .offset seems to be kind of slow and my app is slowed down is there a better modifed than .offset or do you know a more efficient way to do this ?
Hello everyone, for a personal project I'd like to reproduce a design element from Apple's saving application.
I'd like to display three rectangles containing text: two horizontally aligned and one next to it. And I'd like the height of the last rectangle to be equal to the height of the two smallest.
Does anyone have a solution? Please provide a sample code
I'm looking for someone who can make me such a design. I just want this large text to work as a preview for pictures and videos at the top and the comment field at the bottom has the same design as in the picture and that it is together with the keyboard and that should all be only for the post-constitution. Maybe someone can do something like in this picture with exactly the same design and in the comment field there should also be this small Siri icon from Apple Intelligence. It doesn't have to work, but it just looks chic. In addition, I would like that on the main page where post is displayed like on TikTok and Instagram, is with a 3-D floating postcard and I have a sketch (see picture)
Since ios 17 I can’t choose the destination of airdropped files anymore.
why this error persists?
How to set Tx power level for iphone
I see that iOS 18 has tinted app icons. Does anyone know what will happen if we choose not to provide a version of our icon for tinting?
This is the worse service, Developer support do not respond its been 2 months and I cant even put the app live and am losing a lot of business, I can’t go live with this problem. We have been trying to change this account type from individual to business. This is frustrating, What kind of support that do not respond to their customers, Android fixed this long time, I can’t go live with this ,
I am even struggling to get the DNS number. What does one has to do here to get help, Honestly .
So disappointed on apple support
Sindi
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. :-)
Hi,
I want to create a real time sports analytics app that takes camera input and records basketball stats. I want to use pose estimation and object classification to record things such as dribbles, when the ball leaves one's hands. etc.
Is it possible to have a model in CoreML that performs pose estimation on people but also does just simple object detection on other classes (ie. ball, hoop?)
Thanks
Hii apple!
What about zooming with 2 fingers without making a screenshot to zoom it!!
I will love to make a pattent about it!!!
Everywhere we ad on the iphone should we zoom in with 2 fingers!!!
love to hear from ya
I'm getting a filed to diagnose for expression; submit a bug report (http://swift.org
Apple Rejected my Game which is published on my Google Play Account. It Requires me to Send the documentation to demonstrate that you are currently authorized by the rights holder to represent the products. I have sent them My Google Play Console Screenshot for the proof But they are requiring to submit documentation for that.
Can you please guide me how can I prove them that I own that game in third party store?
It has same package name and website/Privacy Policy links etc.
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
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()
}
}
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?
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.
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()
}
}
}
}
}