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

Design Documentation

Posts under Design tag

65 Posts
Sort by:
Post not yet marked as solved
1 Replies
123 Views
Hi, Does anyone have a good reference list of all capabilities that are unavailable in an iMessage App vs a regular App? In particular, I'm trying to figure out whether I can 1) request a signature via passkey, and 2) send a POST request to an HTTP endpoint. Asking because I haven't been able to find code references or live apps for either. Any pointers would be greatly appreciated! Regards, Lyron
Posted
by lyronctk.
Last updated
.
Post not yet marked as solved
0 Replies
153 Views
Hello, I want to change the name of the app, but even though I have changed it everywhere in AppStore Connect, the old name is still displayed. Where should I change it? Thank you very much. If you want to Download it, feel free to do it and play: https://acortar.link/zDRgyy
Posted
by konguele.
Last updated
.
Post not yet marked as solved
0 Replies
87 Views
NavigationLink(destination: ProfilePhotoSelectorView(), isActive: $viewModel.didAuthenticateUser, label: { }). Using this logic Can someone help me out with what I am doing wrong? Thanks.
Posted
by 1BHATTI.
Last updated
.
Post not yet marked as solved
1 Replies
160 Views
Why is the registration field always pushed down a bit? // // LoginView.swift // Database // // Created by Maxi on 25.03.24. // import SwiftUI struct LoginView: View { @State var email = "" @State var password = "" var body: some View { NavigationView { VStack { //Header HeaderView() //Login Form Form{ TextField("E-Mail Adresse", text: $email) .textFieldStyle(DefaultTextFieldStyle()) SecureField("Passwort", text: $password) .textFieldStyle(DefaultTextFieldStyle()) CreateAccountButton( title: "Anmelden", background: .blue) { //Attempt log in } .padding() } //Create ACC VStack { Text ("Neu hier?") //Show registartion NavigationLink ("Erstelle einen Account", destination: RegisterView()) } .padding(.bottom, 0) } } } } struct LoginView_Previews: PreviewProvider{ static var previews: some View { LoginView() } ```// // HeaderView.swift // Database // // Created by Maxi on 25.03.24. // import SwiftUI struct HeaderView: View { var body: some View { VStack { HStack { Text("Anmeldung") .font(.title) .fontWeight(.bold) Spacer() HStack { Image (systemName: "questionmark") Image (systemName: "gear") } .font(.title) } .padding() }```
Posted
by maxl_24.
Last updated
.
Post marked as solved
1 Replies
145 Views
NavigationView { VStack{ Spacer() logo() Spacer() Text("电话号码") .frame(maxWidth: .infinity, alignment: .leading) .padding(.bottom, 10) HStack{ CountryPicker(selectedCountry: $selectedCountry) TextField("Phones Number", text: $phoneNumber) .keyboardType(.numberPad) .textFieldStyle(RoundedBorderTextFieldStyle()) } .padding(.bottom, 14) .frame(maxWidth: .infinity, alignment: .leading) Text("验证码") .frame(maxWidth: .infinity, alignment: .leading) .padding(.bottom, 10) TextField("Verification Code", text: $phoneNumber) .keyboardType(.numberPad) .textFieldStyle(RoundedBorderTextFieldStyle()) NavigationLink(destination: login()) { Text("登陆") .foregroundColor(.white) .padding() .background(Color.black) .cornerRadius(10) .frame(maxWidth: .infinity, alignment: .center) .bold() } .buttonStyle(PlainButtonStyle()) .padding(.top,36) Spacer() } .navigationTitle("") .navigationBarItems( trailing: NavigationLink(destination: Text("Second View")) { Text("遇到问题") } // Vstack Line ) .padding() .frame(maxWidth: .infinity) // Navigation Stack } .padding(.vertical, 5) Hi, I'm new to swift ui, I tried to make the Text("登陆") .foregroundColor(.white) .padding() .background(Color.black) .cornerRadius(10) .frame(maxWidth: .infinity, alignment: .center) .bold() } this navigationLink expand the whole width of the Vstack, so I tried to use .frame(maxWidth: infinity) on it but it still doesn't work Can any one helps me on this problem, Thank you
Posted
by Ting_Qu.
Last updated
.
Post not yet marked as solved
0 Replies
163 Views
-1 I am trying to write a MacOS app which switch input methods by previously assigned shortcut(command+space in here). Switching input methods preoperly works so that the language icon at the status bar(top right) immediately changes as I put the shortcut. The problem I got in here is that the actual input method does not change. For example, if I run my app when the selected input method is Korean, then although the status bar is showing the selected input method is Japanese after command+space, what I can only type is Korean characters. However, after I change focus to another text app(e.g. from sublime text to xcode), only then the selected input method is reflected well. I am using MacOS Monterey 12.6 and Xcode 13.1. My project contains two source files. The code in the file AppDelegate.swift is as follows: import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { var switcher = Switcher() } And the code in the file Switcher.swift is as follows: import Cocoa import MASShortcut class Switcher{ var lang: Int = 0 var kr: TISInputSource? var jp: TISInputSource? var en: TISInputSource? init(){ let inputSourceNSArray = TISCreateInputSourceList(nil, false).takeRetainedValue() as NSArray let inputSourceList = inputSourceNSArray as! [TISInputSource] for inputSource in inputSourceList { if inputSource.id == "com.apple.inputmethod.Korean.2SetKorean" { self.kr = inputSource } if inputSource.id == "com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese" { self.jp = inputSource } if inputSource.id == "com.apple.keylayout.ABC" { self.en = inputSource } } self.register() } func switchLang(){ self.lang = (self.lang + 1) % 3 switch lang { case 0: TISSelectInputSource(self.kr) case 1: TISSelectInputSource(self.jp) case 2: TISSelectInputSource(self.en) default: print("error") } } func register() { let langShortcut = MASShortcut(keyCode: kVK_Space, modifierFlags: [.command]) MASShortcutMonitor.shared()?.register(langShortcut, withAction: { self.switchLang() }) } } I wrote these codes by referring KAWA, but KAWA does not make this issue. I have analyzed all codes of KAWA several times, I couldn't find out why the same problem does not occur in KAWA. I am quite new to Swift, and I have no idea to approach. Could you help me....? Thank you.
Posted Last updated
.
Post not yet marked as solved
0 Replies
196 Views
Greetings, I'm a new developer and would like to understand exactly how XCode, SwiftUI, Reality Kit, ARKit, Reality Composer Pro and Unity work together to create a cosmology app in 3D? I have created a working solar system using Javascript and html and WebGL for the 3D stuff. I would now like to carry that over to the Apple Vision Pro. Can someone tell me what software frameworks, and api's in the Apple ecosystem I can use to code that? Many thanks
Posted
by Jeqhe.
Last updated
.
Post not yet marked as solved
0 Replies
182 Views
In macOS, there is applicationShouldHandleReopen. Is there an equivalent in visionOS? How would I detect someone tapping on the app icon in visionOS from the Home Screen? Scenario: User opened my app at work and is now home. The open window of the app is spatially elsewhere so clicking on the app icon does nothing. The user can re-center all views, but that ruins the placement of all windows in all apps. When tapping on the app icon, I'd like to be able to launch a new window that can be placed in the new space. Does anyone know how this can be done?
Posted
by kudit.
Last updated
.
Post not yet marked as solved
0 Replies
240 Views
I am building my 2nd React-Native app which is a very simple Notes app. The functionalities are to be able to add, edit & delete notes. And, on the home page where the user can change the orientation of the notes to be in 2 column like a grid or just a list. My app has been getting rejected for Minimal design guideline & I don't know what to do to make it more complex. My first iOS React-Native app was just a single-page Weather app, again that was pretty simple. So, my question is what do I do? OR is the trick that I just keep doing little changes and try to submit & see which one gets accepted??
Posted Last updated
.
Post not yet marked as solved
0 Replies
328 Views
Hello, I've a team for developing game in my small company. And we've developed an Obstacle game in Unity from scratch. every single UI, logic & even sound is implemented by our own developers and musicians. It means, every single element is proprietory of our own. I suggest you folks to try out the game in Android playstore by searching the game name as "Cherry Blossom Hills Obstacle" . But once I submitted the same game in iOS App store, the reviewers continously saying, it's a 4.3.0 Design Spam without any to the point feedback basically :( Could you anyone help me resolving this issue? A definitive but even single help/suggestion would be highly appreciated. Regards, Md. Rezoanul Alam.
Posted Last updated
.
Post not yet marked as solved
2 Replies
276 Views
For the past few months, I’ve been learning about Swift coding. I’m relatively new to the coding field so this may seem trivial to some. Here’s what I’m trying to do: I cannot get the data saved from regular textboxes to appear in the table I've designed on the storyboard. It is clearly saving something to the table rows but I cannot see it. I've looked all over the web but most examples are from old versions of swift/deprecated versions of Xcode and are not applicable. Basically, I’m designing an app for my company that allows quick and easy saving of users that call; I would be able to save their company, name, phone, userid, etc, the app saves it into the table And allows me to reference it later. I'm using core data and I’ve attached all of the code to the appropriate storyboard fields. any insight or errors someone could point out would be very helpful. Here’s my code: import Cocoa import SwiftData import SwiftUI class User: NSManagedObject, Identifiable { let id = UUID() //compatibility @NSManaged public var company: String @NSManaged public var name: String @NSManaged public var phone: String @NSManaged public var uid: String @NSManaged public var cid: String @NSManaged public var tvid: String @NSManaged public var tvpwd: String @NSManaged public var notes: String } class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate { @IBOutlet weak var companyTextField: NSTextField! @IBOutlet weak var nameTextField: NSTextField! @IBOutlet weak var phoneTextField: NSTextField! @IBOutlet weak var uidTextField: NSTextField! @IBOutlet weak var cidTextField: NSTextField! @IBOutlet weak var tvidTextField: NSTextField! @IBOutlet weak var tvpwdTextField: NSTextField! @IBOutlet weak var notesTextField: NSTextField! @IBOutlet weak var tableView: NSTableView! var users = [User]() override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self } @IBAction func saveButtonClicked(_ sender: NSButton) { let user = User() users.append(user) tableView.reloadData() } // MARK: - NSTableViewDataSource func numberOfRows(in tableView: NSTableView) -> Int { return users.count } // MARK: - NSTableViewDelegate func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { let user = users[row] guard let cell = tableView.makeView(withIdentifier: tableColumn!.identifier, owner: self) as? NSTableCellView else { return nil } switch tableColumn?.identifier.rawValue { case "company": cell.textField?.stringValue = user.company case "name": cell.textField?.stringValue = user.name case "phone": cell.textField?.stringValue = user.phone case "uid": cell.textField?.stringValue = user.uid case "cid": cell.textField?.stringValue = user.cid case "tvid": cell.textField?.stringValue = user.tvid case "tvpwd": cell.textField?.stringValue = user.tvpwd case "notes": cell.textField?.stringValue = user.notes default: return nil } return cell } } ![]
Posted
by aboy336.
Last updated
.
Post not yet marked as solved
1 Replies
236 Views
Hello! This is my first time posting a question on a form. So sorry ahead of time if I am not doing something right and please let me know how I can fix it! I am new to swift and I have been following a video by AppStuff. https://youtu.be/QJHmhLGv-_0?si=OwLGXKNTc3m-UH7r&t=5914 . The link is time stamped to the part of the video I need help with. My question is: Where do I put the AuthenticationFormProtocol var formIsValid so that way I can call on formIsValid to use the .disabled and .opacity in the ButtonView File depending on if formIsValid is true or not? I deviated from the video by making a new file called ButtonView so that way I didn't have to copy and paste code that I would be using in two different places. ButtonView File import SwiftUI struct ButtonView: View { let printTitle: String let title: String let systemIcon: String //@Binding var disabledPlaceHolder: String let taskAction: () -> Void var body: some View { Button(action: { taskAction() }) { HStack { Text(title) .fontWeight(.semibold) Image(systemName: systemIcon) } .foregroundStyle(Color(.white)) .frame(width: UIScreen.main.bounds.width - 32, height: 48) } .background(Color(.systemBlue)) //.disabled(disabledPlaceHolder) //.opacity(disabledPlaceHolder ? 1.0 : 0.5) .clipShape(RoundedRectangle(cornerRadius: 10)) .padding(.bottom, 50) } } #Preview { ButtonView(printTitle: "Sign user up...", title: "Sign Up", systemIcon: "arrow.right", //disabledPlaceHolder: .constant(""), taskAction: {}) } LoginView File import SwiftUI struct LoginView: View { @State private var email = "" @State private var password = "" @EnvironmentObject var viewModel: AuthViewModel var body: some View { NavigationStack { VStack { //image Image("TestLogo") .resizable() .scaledToFill() .frame(width: 100, height: 120) .clipShape(RoundedRectangle(cornerRadius: 20)) .padding(.vertical, 32) //form fields VStack(spacing: 24) { InputView(text: $email, title: "Email", placeholder: "name@example.com") .textInputAutocapitalization(.none) InputView(text: $password, title: "Password", placeholder: "Enter your password", isSecureField: true) } .padding(.horizontal) .padding(.top, 12) //sign in button ButtonView(printTitle: "Login In", title: "SIGN IN", systemIcon: "arrow.right") { Task { try await viewModel.signIn(withEmail: email, password: password) } } // .disabled(formIsValid) // .opacity(formIsValid ? 1.0 : 0.5) Spacer() //signup button NavigationLink { RegistrationView() .navigationBarBackButtonHidden(true) } label: { HStack(spacing: 3) { Text("Don't have an account?") Text("Sign Up") .fontWeight(.bold) } .font(.system(size: 14)) } } } } } extension LoginView: AuthenticationFormProtocol { var formIsValid: Bool { return !email.isEmpty && email.contains("@") && !password.isEmpty && password.count > 5 } } RegistationView File struct RegistrationView: View { @State private var email = "" @State private var fullName = "" @State private var password = "" @State private var confirmPassword = "" @EnvironmentObject var viewModel: AuthViewModel @Environment(\.dismiss) var dismiss var body: some View { VStack { //image Image("TestLogo") .resizable() .scaledToFill() .frame(width: 100, height: 120) .clipShape(RoundedRectangle(cornerRadius: 20)) .padding(.vertical, 32) //form fields VStack(spacing: 24) { InputView(text: $email, title: "Email", placeholder: "name@example.com") .textInputAutocapitalization(.none) InputView(text: $fullName, title: "Full name", placeholder: "Enter your name") InputView(text: $password, title: "Password", placeholder: "Enter your password", isSecureField: true) InputView(text: $confirmPassword, title: "Confirm Password", placeholder: "Confirm your password", isSecureField: true) } .padding(.horizontal) .padding(.top, 12) //sign up button ButtonView(printTitle: "Create User", title: "CREATE USER", systemIcon: "arrow.right") { Task { try await viewModel.createUser(withEmail: email, password: password, fullname: fullName) } } // .disabled(formIsValid) // .opacity(formIsValid ? 1.0 : 0.5) Spacer() Button { dismiss() } label: { HStack(spacing: 3) { Text("Already have an account?") Text("Sign In") .fontWeight(.bold) } .font(.system(size: 14)) } } } } extension RegistrationView: AuthenticationFormProtocol { var formIsValid: Bool { return !email.isEmpty && email.contains("@") && !password.isEmpty && password.count > 5 && confirmPassword == password && !fullName.isEmpty } }
Posted Last updated
.
Post not yet marked as solved
2 Replies
343 Views
I've seen videos on how people on Youtube are using the Apple Vision pro as a Camera Monitor. I found this very neat, but I was wondering if there is a way to make a live stream panoramic view of live CCTV footage, with the Apple Vision Pro. SO my question is, can you make a panoramic view of something that is live, in real time?
Posted Last updated
.