We present a viewController by embedding it into a UINavigationController and then presenting that navigation controller.
let navigationController = UINavigationController(rootViewController: invCreateIssueViewController)
self.present(navigationController, animated: true)
The size of the presented view controller has reduced a lot in ipad in iOS 18. How do I get the same full screen presentation as iOS 17 in iOS 18?
Explore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Finally updated my phone lastnight and I honestly wish I had NEVER bothered!
Apple, what on earth is going on with your design team?! It’s a nightmare!!!!!!
incsnt find anything, my photos are a nightmare when I knew wheee everything was. Now I have to try and work out how to find things more when it wasn’t ideal during a consultation with clients as I looked incompetent.
The settings for passwords, battery etc have all been changed aswell and the pull down part for locking/bluetooth/aeroplane modes are all stupid aswell. Overall, extremely unsatisided with the overall update.
I stayed with Apple because of the convenience of knowing the layout. I switched once to android and hated it because it had a different layout and I didnt like it having to start again when I’m already so busy. i lasted 24 hours with that phone before taking it back and upgrading back to Apple. Since the new layout and since I’m due an upgrade, there’s now nothing stopping me as your customer from leaving and now getting an android phone because I now find the upgrade difficult to navigate. If I could change it back I would.
Overall dissatisfied and now willing to upgrade to another Apple next month.
I have an iPad developed using UIKit and storyboards now I have to develop UI for iPhone. Designs for iPhone app are completely new from iPad app also navigation is different. I have question regarding should I make different view controllers for iPhone and iPad and different storyboard
I accedently removed my info.plist can someone help me make one based on this image
In Apple Music I opened fullscreen for a song and I accidentally clicked some keys and the name and artist name of the song I was playing disappeared, and I can't figure out how to get it back, it temporarily comes back when I hover over the top bar but I can not get it to stay there permanently.
I previously written here, and some advices were to appeal to rejection sending them message describing uniqueness of the app. Nothing is working.
In short, i have a vpn app (of course by design shares some concept with other apps that are in the app store). But since the rejection i have completely changed the ui, added built in browser, p2p messenger so users could interact with each other without any interference. The app is completely free with no ads. I thought this is it, there's no way it would reject this time, but... i get a notification with rejection repeating the same old message. I'm extremely frustrated and don't know what to do.
Tried changing the logo of the app, the name to "Incognito - Messenger, VPN", app store screenshots.
I've already appealed with screenshots describing unique features that other vpn apps don't have, but the message just repeats from app review team.
Submission ID: 1a49ee0b-c4e2-4a36-8372-e4d3b9a8b13f
Does anybody have an advice what i can do?
I'm using NWListener with NWConnection. This code work great and I am able to start the listener and successfully receive connections in Xcode preview.
However, when I build/run on my phone, the listener does not seem to accept connections from the network. If the app sends a message to itself on the phone, it is received, but if I send a message to that ip/port from another network device, it is not accepted/received.
Any help or suggestions appreciated.
import Foundation
import Network
import Combine
@Observable
class UDPListener3 {
var listener: NWListener?
var queue = DispatchQueue.global(qos: .userInitiated)
var messageReceived: Data?
private(set) var isReady: Bool
private(set) var listening: Bool = false
private(set) var receiving: Bool = false
private(set) var port: UInt16 = 0
init () {
isReady = false
listening = false
receiving = false
messageReceived = nil
listener = nil
}
func GetPort() {
var portText = "\(String(describing: listener!.port))"
portText = portText.replacingOccurrences(of: "Optional(", with: "")
portText = portText.replacingOccurrences(of: ")", with: "")
portText = portText.replacingOccurrences(of: ",", with: "")
port = UInt16(portText)!
if let testPort = listener?.port?.rawValue {
self.port = testPort
}
}
func config(port: Int) {
if port > 0 {
configinit(port: NWEndpoint.Port(integerLiteral: NWEndpoint.Port.IntegerLiteralType(port)))
} else {
configinit(port: nil)
}
}
func configinit(port: NWEndpoint.Port?) {
// conifigure and create listener
let params = NWParameters.tcp
params.allowFastOpen = true
if port == nil {
self.listener = try? NWListener(using: params, on: .any)//port)
} else {
self.listener = try? NWListener(using: params, on: port!)
}
if listener != nil {
GetPort()
self.listening = true
self.listener?.stateUpdateHandler = { [self] update in
switch update {
case .ready:
self.isReady = true
print("*Listener.ready on port \(String(describing: self.listener?.port))")
GetPort()
case .failed:
// Announce we are no longer able to listen
self.listening = false
self.isReady = false
print("*Listener.failed on port \(port)")
case .cancelled:
// Announce we are no longer able to listen
self.listening = false
self.isReady = false
print("*Listener.canceled on port \(port)")
default:
print("*Listener default connecting to port \(port)... \(self.listener!.state)")
}
print()
}
self.listener?.newConnectionHandler = { connection in
print("@called listener.newConnectionHandler")
self.createConnection(connection: connection)
}
// start listening
self.listener?.start(queue: self.queue)
GetPort()
} else {
print("unable to start listener")
}
}
func createConnection(connection: NWConnection) {
connection.stateUpdateHandler = { (newState) in
switch (newState) {
case .ready:
print(" ...Connection.ready")// - \(connection)")
self.receive(connection)
case .cancelled:
print(" ...Connection.cancelled")// - \(connection)")
case .failed:
print(" ...Connection.failed")// - \(connection)")
default:
print(" ...Connection.default: \(connection.state)")// - \(connection)")
}
}
print(" ...connection starting")
connection.start(queue: .global())
}
func receive(_ connection: NWConnection) {
print()
print(" ...connection receiving")
// respond 200 received
self.respond(on: connection)
//connection.receiveMessage() { [self] data, context, isComplete, error in //<-- this would not return until timeout expired??
connection.receive(minimumIncompleteLength: 20000, maximumLength: 200000) { [self] data, context, isComplete, error in
receiving = true
/* Check what we have */
var message = ""
if data != nil {
message = String(decoding: data!, as: UTF8.self)
} else {
message = ""
}
// ERROR
if let unwrappedError = error {
print(" >>ERROR: received in \(#function) - \(unwrappedError)")
receiving = false
return
}
// NO DATA
guard let data = data else {
print(" >>NO DATA with context - \(String(describing: context))")
receiving = false
return
}
// NOT COMPLETE
if !isComplete {
print(" >>NOT COMPLETE with context - \(String(describing: context))")
//return
}
// RECEIVED A MESSAGE
if message != "" {
self.messageReceived = data
print(" ...received data - \(String(describing: context)) \(String(describing: data))")
receiving = false
connection.cancel()
return
}
// keep receiving,
self.receive(connection)
}
}
}
func respond(on connection: NWConnection) {
let response = """
HTTP/1.1 200 OK
Content-Length: 2
OK
"""
connection.send(
content: response.data(using: .utf8),
completion: .idempotent
)
}
func cancel() {
self.listener?.cancel()
self.listener = nil
self.listening = false
self.isReady = false
print("listener disabled")
}
}
I'm trying to create custom SF symbols and am getting this error message when I validate the template. It doesn't matter if I Export Template or Symbol. Also, it doesn't even matter if I make any changes or not, as long as it is opened in Adobe Illustrator or Inkscape and then I save it, I will get this error message when validating.
I’m currently using the iOS 26 Developer Beta and noticed the new icon design for the Camera app. Personally, I preferred the previous icon it looked cleaner, more elegant, and felt more in line with Apple’s signature iOS design language.
The new icon feels more like something you’d expect from Android. It lacks the minimalist, refined style that usually defines iOS icons. I understand UI evolves over time, but this change feels like a step away from what makes Apple’s design philosophy unique.
Just wanted to share this honest feedback as a long-time user and developer. Thanks for considering!
Hello -
I have an older app on the store, iAchieved, that suddenly stopped working properly on iOS 18. You can see it on the store, here:
https://apps.apple.com/us/app/iachieved/id1069338478
It still opens runs, and I can try to enter a new item, but something is wrong with the date, so that the "Done" button does not appear. And since it does not, I cannot tap it and create the item.
I'm not a developer, I don't code, I only designed the app and had someone build it for me.
But, if you can put it in layman's terms, any idea what's causing this?
Thanks so much for any insight you can provide,
-- David
Hi,
Anybody knows will this occurs when using navigationStack at iOS 18.3? The navigationStack not stay at safeareas
the code as simple as that:
NavigationStack(path: $navManager.path) {
VStack {
Text("Hello")
}
.navigationDestination(for: Route.self) { route in
switch route {
....
}
}
}
.environmentObject(navManager)
.environment(logic)
I'm new to developing with SwiftUI and I created a Pomodoro app for macOS that runs in the menu bar. I added 4 animations and when the user selects the snow animation, it starts snowing on the screen. But the app uses 20%-30% of the CPU and has high energy consumption. I can't reduce it and I couldn't find a solution.
// snow animation
import SwiftUI
struct SnowflakeView: View {
@State private var flakeYPosition: CGFloat = -100
@State private var isAnimating = false
private let flakeSize: CGFloat = CGFloat.random(in: 10...30)
private let flakeColor: Color = Color(
red: Double.random(in: 0.8...1),
green: Double.random(in: 0.9...1),
blue: Double.random(in: 1...1),
opacity: Double.random(in: 0.6...0.8)
)
private let animationDuration: Double = Double.random(in: 1...3)
private let flakeXPosition: CGFloat = CGFloat.random(in: 0...310)
var body: some View {
Text("❄️")
.font(.system(size: flakeSize))
.foregroundColor(flakeColor)
.position(x: flakeXPosition, y: flakeYPosition)
.onAppear {
if !isAnimating {
withAnimation(Animation.linear(duration: animationDuration).repeatForever(autoreverses: false)) {
flakeYPosition = 280 + 50
}
isAnimating = true
}
}
}
}
I also have how I run the animation below.
ZStack {
ForEach(0..<10, id: \.self) { index in
if selectedAnimal == "Snow" {
SnowflakeView()
} else if selectedAnimal == "Rain" {
RainDropAnimation()
}else if selectedAnimal == "Leaf"{
LeafFallAnimation()
}else if selectedAnimal == "Confetti"{
ConfettiAnimation()
}
}
}
ปุ่ม ฝ เอาไปสลับกะปุ่ม backspace น่าจะใช้สะดวกขึ้น
Hello Apple Developers i am here write down my experience with the IOS 26 Beta
first off i would like to say that i kind of do/don't like the new iquid glass UI/UIX Designs in some parrts of the ios like in m ust 3rd Party Apps like Uber Lyrith MJ Access Link Moblie app DoorDash VLC And Apple Music App just to name of few
since i have installed the beta i have ran into a few bugs i have alread sent to the feeback app via iphone but i'm going to write them here as will i'm not looking for troubleshoots or tech support i'm just shareing my experience with the apple community and the Apple Development/Enginer Team to fine tone for release Time
please note that i am a user with Vision impairment so please by respect to me due to my writteing issues and grammer and spelling
so here i go my first bug that i ran into on the first day was when i was listening to some music trakcs in the apple muisc app when scrolling down or up fast the app will froze for mill secend then contiune as noraml
my second bug that i ran into dureing music play was with my Crossfade settings not working on some tracks im not sure if this is due to BMP alignment or AI algorithm integration with in the software itseif but for me this takes me out of the listening experince that i have when i enjoy listening to music
My suggestion Move the AutoMix and Crossfade Settings in to the Apple Music its seif and give the user more controll over how long or how short they want the crossfade or autmix to happen dureing the ending of each tracked play also for the cross fade option is set at 12 increase this to 30 secs or more if possiable or add an BPM options for the Automix to mix in the next track via BMP for simple of my rock track is at 148 BMP the next track should be pop or kpop or rap synceing up with that same BMP speed or similar at 148 BMP my next suggestion for the Apple Music App Shameless track mode (this mode to can be Incorporated) in to the Automix Featrue this redue some music tracks that ends abruptly some MP3 tracks added outside of the Apple Music App seems to broke dureing playback
My 3rd bug that i ran in to with the Glass UI for controll Center like i stated before i am Vision impaired with the clear Glass over lapping the current UI for me this hard for me to tell what icons i am looking atside from the Voolum and Brightness Bars i am asking please make this more dark theme and make the icons brigher or add name undernearth the icons or Flip the Dark them or dan the current UI over lapping the Controlor center or add White colors with Black Arrows/icons for all Apple App that has this Glass UI in side of cause this is driving me nuts
My 4th Bug that i ran into was with the lock screen/restart/reboot ohh girl where do i began with this one let's with the notifications i don't know who through it was a good idea to have a Clear Bright UI over lapping the Notifications this is very annoying via imessage Texting cause my custom wallpaper Blends in with a white background and this is Worst
My suggestion for this is very simple darkering the background on the lock screen abit more so the text is more reader or increase the Notification bars (this is for users like myseif that use Dark mode)
My 5th Bug involves my Back ups/Restore/Corrupated < is seif explanatory when i tryed to downgrand back to Version 18.5/18.6 nothing happened so please fix this or make it a bit more easyer for users to be able to back up/Retore their Devices now i has to wait until (Tomttow morning Friday) to factory reset my phone
my conclusion since Beta Users and Developers and Engiers are Still testing please take look at my suggestion and try to bring not all but some of them in to public Release
Thank You!
Update i would like to Downgrad from IOS 26 Developer Beta back to IOS 18.5
This update seems to have taken away customization features. So now I just have to have the same lock screen and home screen background? There’s no way to have 2 separate images anymore? Also I have my phone in darkmode so now I just have to deal with the ugly black thumbnails for the app? I can’t revert them to normal colors while keeping dark mode?
Hi everyone,
I’m new to macOS development and working on an app idea that needs a timeline-based editor interface, similar to what you see in Logic Pro or Final Cut.
The UI I want to build would have:
A horizontal beat ruler that follows BPM and shows beat positions
Several vertical tracks stacked below it (for things like events or markers)
Horizontal zooming and scrolling
A preview panel on the right side that stays in sync with the timeline
I’m currently trying this in SwiftUI, but I’m running into some limitations and wondering if AppKit would be a better fit, or maybe a hybrid of the two.
My questions:
Where should I start when building something like this?
What’s the best way to make the beat ruler and all track layers scroll together?
How should I handle zooming in/out and syncing the display to a BPM timeline?
Is there a clean way to integrate AppKit for the timeline view while keeping SwiftUI elsewhere?
Helvetica (17.0d1e1) has bugs, hopefully the developers and designers will fix it.
Link to the presentation: https://drive.google.com/file/d/16qfpo9Y7Psghv5c_Xl3JBiTPkP4QNaaS/view?usp=sharing
Is it possible to use the new variable draw feature for a custom SF Symbol without it leaving the background behind it when it is not drawn?
I am trying to make a tally icon that is drawn with the variable draw, but it doesn't look good if the tally is visible in the background before it is drawn.
I'm working to emulate the Activity Rings featured in Apple's Fitness app.
Here's a copy of what's in the swift file so far.
//
// ProgressRingPrototype.swift
// Nutrition
//
// Created by Derek Chestnut on 1/13/25.
//
import SwiftUI
struct ProgressRingPrototype: View {
@State var progress = 0.00
let size: CGSize
let thickness: CGFloat
var color: Color?
var gradientColors: [Color]?
var body: some View {
let color = color ?? .primary
ZStack {
RingPrototype(
size: self.size,
thickness: self.thickness,
color: color.opacity(0.2)
)
let gradient = AngularGradient(
colors: gradientColors ?? [.primary, .secondary],
center: .center
)
let style = StrokeStyle(
lineWidth: 32,
lineCap: .round
)
Circle()
.trim(from: 0, to: progress)
.stroke(gradient, style: style)
.rotationEffect(.degrees(-90))
.frame(width: size.width, height: size.height)
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
withAnimation(.easeInOut(duration: 1)) {
progress = 0.75
}
}
}
}
}
#Preview {
ZStack {
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 256, height: 256),
thickness: CGFloat(32),
color: .primary
)
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 190, height: 190),
thickness: CGFloat(32),
color: .primary
)
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 124, height: 124),
thickness: CGFloat(32),
color: .primary
)
}
}
Here's a snapshot of the live preview.
I'm experiencing an issue where the trailing line cap generated by the stroke exceeds the start angle of the angular gradient, which creates an ugly artifact at 0 degrees.
Anyone have a solution to this problem?
Derek
import SwiftUI
import RealmSwift
@main
struct UniqueHolidayApp: App {
init() {
migrateRealmIfNeeded()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
private func migrateRealmIfNeeded() {
let config = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if oldSchemaVersion < 1 {
// Realm will handle changes automatically for simple additions/removals
}
}
)
Realm.Configuration.defaultConfiguration = config
}
}