Post

Replies

Boosts

Views

Activity

Reply to Feedback form
Feedback is critical, Critical to you or to the user ? 2 thoughts: In Europe you have to comply with GDPR regulation on privacy See guideline 5.1.1 (ii) Permission: Apps that collect user or usage data must secure user consent for the collection, even if such data is considered to be anonymous at the time of or immediately following collection. Paid functionality must not be dependent on or require a user to grant access to this data. Apps must also provide the customer with an easily accessible and understandable way to withdraw consent. Ensure your purpose strings clearly and completely describe your use of the data. Apps that collect data for a legitimate interest without consent by relying on the terms of the European Union’s General Data Protection Regulation (“GDPR”) or similar statute must comply with all terms of that law. Learn more about Requesting Permission (https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/).
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Apr ’24
Reply to AppStore impressions
Improve your app! More seriously, there are tutorials or online sessions proposed by Apple to improve apps visibility. Similar to this one last year (but look for new ones): https://developer.apple.com/events/app-store/ or https://www.google.fr/url?sa=t&source=web&rct=j&opi=89978449&url=https://developer.apple.com/videos/play/tech-talks/110151/&ved=2ahUKEwiA4vXl5MmFAxWBaqQEHV9PB7gQtwJ6BAgPEAI&usg=AOvVaw22N4kZJKiXrLi1tQDXuaz0
Topic: App & System Services SubTopic: Core OS Tags:
Apr ’24
Reply to Big problem - My app is not showing in setting on on device simulator
didn't program/change anything. Do you mean it was working previously and does not work anymore ? Did you register your settings, with some code like this in disFinishlaunching: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let defaults = [ // The settings values you want to show in App's settings ] as [String : Any] UserDefaults.standard.register(defaults: defaults) // Connect to Root.pList // Other stuff } and define the Root.plist
Apr ’24
Reply to CopyCat Rejection - what documents are required to verify that the app is mine?
if I am a solo developer with every right to my own app. I don't think that's the point. You could be a solo developer, having fully developed the app but have designed it very similar to another app. Or your app name or visual appear too similar to an existing app. The fact that it is on another store does not matter for the reviewer. Have you searched the appstore for such similar app ? Once you have found you could either modify your app or try to explain to reviewer why it is not copycat (more difficult).
Apr ’24
Reply to how to add bluetooth permission
In fact that's an issue with SwiftUI projects which do not create by default an Info.plist. The way I do it: Create a new file of type Property List (with the File > New > File menu) Name it info Now you will see an info.plist in the files hierarchy you can add the bluetooth authorization there.
Apr ’24
Reply to Error when calling function to move an element: "Cannot use mutating member on immutable value: 'self' is immutable"
Where exactly is the error ? On timer probably. That's because you declare the function as mutating (as compiler asks for). But you have then to make timer a State variable: struct Pos_View: View { @ObservedObject var element_1 = Element(imageName: "pic_1", name: "", size: CGSize(width: 100, height: 100), position: PositionConstants.pos_1) let Input_Matrix = Input.input_1 // Index to track current row in matrix @State var currentIndex = 0 // Timer to trigger updates @State private var timer: Timer? // <<-- State var var body: some View { VStack { // Display element Image(element_1.imageName) .resizable() .frame(width: element_1.size.width, height: element_1.size.height) .position(element_1.position) // Button to start animation Button("Start Animation") { startAnimation() } } } /*mutating*/ func startAnimation() { // <<-- no mutating currentIndex = 0 // Reset index before starting animation timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) {timer in if self.currentIndex < self.Input_Matrix.count { let isFirstElementOne = self.Input_Matrix[self.currentIndex][0] == 1 let newPosition = isFirstElementOne ? PositionConstants.pos_2 : PositionConstants.pos_1 withAnimation { self.element_1.position = newPosition } self.currentIndex += 1 } else { // Stop the timer when we reach the end of matrix timer.invalidate() } } } }
Topic: Programming Languages SubTopic: Swift Tags:
Apr ’24
Reply to SwiftUI app crashes randomly on iOS 17
I am not sure to understand the logic in onChange. Are you sure you want to test selectedTab .onChange(of: selectedTab) { neco in if selectedTab == 2 { and not neco .onChange(of: selectedTab) { neco in if neco == 2 { self.isChatModalPresented = true selectedTab = previousTab } else { previousTab = selectedTab } } When do you reset self.isChatModalPresented to false ?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Apr ’24
Reply to Problem with dialogue
@ Climber1987Muc .onAppear works only onetime. Yes, normal. The modifier name is a bit misleading. It works when the view loads (not when it appears on screen. One trick is to create a dummy State var: @State var dummy = false Then in the body, enclose the part on which you had .onAppear inside: if dummy || !dummy { // Will always be true // code on which .onAppear applied } And in each place where you want to force redraw (like in a Button action or scroll onChange), call dummy.toggle() // just to force a change in the state var
Topic: Programming Languages SubTopic: Swift Tags:
Apr ’24