# ios-app-development

Published articles for ios-app-development.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Every animation was one rename away from breaking a live show

DevFeed: [Every animation was one rename away from breaking a live show](<https://devfeed.tech/articles/every-animation-was-one-rename-away-from-breaking-a-live-show-23709.md>)

Original publisher: [Read original article](<https://medium.com/whatnot-engineering/every-animation-was-one-rename-away-from-breaking-a-live-show-a5139b9c6bad?source=rss----162aeca881b0---4>)

Author: Whatnot Engineering

Published: 2026-09-10T16:31:01Z

Content type: tutorial

Language: en

Sources: [Whatnot Engineering](<https://devfeed.tech/sources/whatnot-engineering.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Code](<https://devfeed.tech/topics/code.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>)

Tags: [animation](<https://devfeed.tech/tags/animation.md>), [code](<https://devfeed.tech/tags/code.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>)

### AI overview

This engineering post explains how a designer's property rename could silently break a production iOS animation because Swift code referenced asset properties through string literals. It describes replacing hand-written bindings with generated animation binding code from asset files so the compiler can enforce the contract and reduce reliance on tribal knowledge.

### Source excerpt

Seth Sandler There's a bug we never shipped, and it kept me up anyway. Here's how it goes: a designer renames a property from purchaseCount to purchase_count inside an animation file. Every place our Swift code references that property is a string literal. The build stays green. Code review passes; nothing in the diff even mentions animations. And the celebration animation at the heart of our live auctions silently stops firing, in production, in front of a live audience. Nothing stood between us and that outcome except everyone remembering to be careful. And the strings were only the most visible tripwire. Driving our animation runtime correctly also meant knowing things the compiler never checks: call order, load timing, which properties were designer-internal and untouchable, how not to leak memory. Every engineer touching an animation had to know all of it, and every new animation was another chance to get it wrong. If you've done animation work on iOS, some version of this unease is familiar. This post is the story of how we defused it: by generating the entire animation binding layer from the asset files themselves, so the compiler enforces the contract and the generated code encodes the nuance. The methodology isn't specific to our stack, our vendor, or our app. If your code talks to any designer-owned asset through string literals and tribal knowledge, you can build this too. Why hand-rolled animation code collapses Our first instinct, like every iOS team's, was to build the animations ourselves. SwiftUI has withAnimation. Core Animation has CAKeyframeAnimation. We'd shipped complex UI before. How hard could it be? The animation we were building wasn't a loop. It was state-driven: it needed a user's avatar, their name, a running count that ramps up the visuals, and different behavior depending on who's watching. Each input changes the intro, the escalation, the outro. In native Swift, that decomposed into: State explosion. A @State for the image, a @Binding

## How To Get Apple To Respond In Days On AppStore Issue

DevFeed: [How To Get Apple To Respond In Days On AppStore Issue](<https://devfeed.tech/articles/how-to-get-apple-to-respond-in-days-on-appstore-issue-29459.md>)

Original publisher: [Read original article](<https://medium.com/mobile-app-development-publication/how-to-get-apple-to-respond-in-days-on-appstore-issue-9d50ca77a133?source=rss----f9c208bdbb09---4>)

Author: Elye - A Dev By Grace

Published: 2026-08-26T10:40:01Z

Content type: tutorial

Language: en

Sources: [Mobile App Development Publication - Medium](<https://devfeed.tech/sources/mobile-app-development-publication-medium.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [app-development](<https://devfeed.tech/tags/app-development.md>), [apple](<https://devfeed.tech/tags/apple.md>), [developer](<https://devfeed.tech/tags/developer.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [issue](<https://devfeed.tech/tags/issue.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

The article describes an App Store submission issue in which the Submit spinner stops and the process cannot continue. It presents this as a practical account of what to do when Apple does not respond for weeks.

### Source excerpt

A True Story: What To Do When You're Stuck With AppStore Issue for Weeks Continue reading on Mobile App Development Publication "

## GraphQL Tutorial: Why Pagination?

DevFeed: [GraphQL Tutorial: Why Pagination?](<https://devfeed.tech/articles/graphql-tutorial-why-pagination-29458.md>)

Original publisher: [Read original article](<https://medium.com/mobile-app-development-publication/graphql-tutorial-why-pagination-f0e6958d6f76?source=rss----f9c208bdbb09---4>)

Author: Elye - A Dev By Grace

Published: 2026-04-04T11:38:42Z

Content type: tutorial

Language: en

Sources: [Mobile App Development Publication - Medium](<https://devfeed.tech/sources/mobile-app-development-publication-medium.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [API](<https://devfeed.tech/topics/api.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [api](<https://devfeed.tech/tags/api.md>), [backend](<https://devfeed.tech/tags/backend.md>), [coding](<https://devfeed.tech/tags/coding.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [programming](<https://devfeed.tech/tags/programming.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial explaining why APIs use pagination to divide large datasets into manageable chunks. It introduces offset-based and cursor-based pagination and describes how pagination can improve response speed, memory use, and user experience.

### Source excerpt

How Not to Crash Your App with a Giant Pizza Order Continue reading on Mobile App Development Publication "

## Scaling iOS at Bumble: Part 2/3 -- The Assessment

DevFeed: [Scaling iOS at Bumble: Part 2/3 -- The Assessment](<https://devfeed.tech/articles/scaling-ios-at-bumble-part-2-3-the-assessment-22603.md>)

Original publisher: [Read original article](<https://medium.com/bumble-tech/scaling-ios-at-bumble-239e0fa009f2?source=rss----6353b5325b1a---4>)

Author: Jonathan Crooke

Published: 2024-02-15T13:49:17Z

Content type: article

Language: en

Sources: [Bumble Tech](<https://devfeed.tech/sources/bumble-tech.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Tuist](<https://devfeed.tech/topics/tuist.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [bazel](<https://devfeed.tech/topics/bazel.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [bazel](<https://devfeed.tech/tags/bazel.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [performance](<https://devfeed.tech/tags/performance.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [tuist](<https://devfeed.tech/tags/tuist.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article recaps Bumble's assessment process for replacing parts of its iOS project and build toolchain. It describes onboarding, proof-of-concept work, full-app conversion, and assessment criteria for Swift Package Manager, Tuist, and Bazel, including blockers, user experience, and performance.

### Source excerpt

Scaling iOS at Bumble: Part 2/3 -- The AssessmentRecap In our previous post we discussed how we came to be investigating project and build toolchain replacement solutions for our iOS codebase at Bumble Inc. We began executing proofs of concept for Swift Package Manager (SPM), Tuist and Bazel. The Process Our investigative process for each tool was performed in roughly the same manner: 1. Onboarding With the exception of some light use of SPM as a third-party dependency manager, no-one on the team was fully fluent with any of the tools. This meant that at first, we needed to learn the basics, which could be achieved by creating a minimum-viable manifest for one of our node modules. This would involve learning the manifest format and core commands for building, testing etc. 2. Medium-sized proof of concept Following on from the initial onboarding, we would then progress to converting parent modules, traversing the tree post-order. At each level we'd cover more of our core requirements and encounter edge-cases. Throughout, we noted learnings, limitations and fixes. 3. Full-app conversion At this stage, since our module tree exhibits a strong level of uniformity, we'd now have gathered enough experience to fully convert the app's child modules, and do so using automated tooling. How we achieved this will be discussed below. Unsurprisingly, the top-level app target was its own challenge, and required considerably handcrafting. We only aimed to achieve a minimum-viable conversion at this stage, and didn't expect tests to pass. That said, we'd usually have a fairly conformant conversion anyway, that would launch successfully to its home screen and usually plenty more. 4. Assessment With a converted app target in hand, we would now have a candidate for assessment. But what did we want to know? Our analysis looked at these areas: Blockers: simple enough, any limitations or issues in the tool's functionality whereby it was unable to serve our basic requirements Subjective user

## iOS development with JetBrains Fleet

DevFeed: [iOS development with JetBrains Fleet](<https://devfeed.tech/articles/ios-development-with-jetbrains-fleet-22862.md>)

Original publisher: [Read original article](<https://medium.com/kodein-koders/ios-development-with-jetbrains-fleet-fa83e5b0be96?source=rss----f311f45ef54---4>)

Author: Romain Boisselle

Published: 2023-11-26T19:17:05Z

Content type: tutorial

Language: en

Sources: [Kodein Koders - Medium](<https://devfeed.tech/sources/kodein-koders-medium.md>)

Topics: [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [ide](<https://devfeed.tech/topics/ide.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [iOS development](<https://devfeed.tech/topics/ios-development.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [appcode](<https://devfeed.tech/tags/appcode.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [jetbrains-toolbox](<https://devfeed.tech/tags/jetbrains-toolbox.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A tutorial on using JetBrains Fleet for iOS development with SwiftUI. It explains how Fleet supports code navigation, refactoring, collaboration, and running iOS applications, while noting that Xcode remains necessary for tasks such as project configuration, signing, and dependency management.

### Source excerpt

Farewell, AppCode; we've found a worthy replacement. This article is intended to demonstrate how to use JetBrains Fleet for the development of Swift/UI applications, including SwiftUI previews. For those who may not know about JetBrains, it is an amazing company that builds tools for developers, such as IntelliJ IDEA or Kotlin. To me, JetBrains has always provided tools that exceeded my developer expectations, even when those tools are considered "not stable." A year ago, JetBrains announced Fleet, a brand new distributed and polyglot IDE. While many people saw it as just another VSCode IDE, I knew it would become more than that. Bringing collaborative work for remote developers and providing multiple language support out-of-the-box is a real game-changer. And if you've already tried a JetBrains IDE, you know that they are serious about developer productivity! In the meantime, a year ago, they discontinued AppCode, an underrated IDE for working within the Apple ecosystem. AppCode was particularly helpful for developers who found it challenging to adjust to alternative IDE workflows, such as XCode. With Fleet, you will experience easy code navigation, refactoring, collaboration, and support for a wide range of languages and project types, including SwiftUI applications. Let's be honest, you won't completely escape from Xcode -- there are still essential tasks like project configuration, signing, and package dependency management that require its user interface. However, for the majority of your coding sessions, you'll find that you won't need it anymore. Edit and run your iOS app from Fleet Let's start by installing Fleet using the JetBrains Toolbox. This is the easiest way to manage and upgrade your JetBrains IDEs in one place. JetBrains Toolbox -- IDE version management Once Fleet installed, you can either use your own SwiftUI project or clone the following GitHub project created for this article's purpose. https://github.com/KodeinKoders/playground-fleet-swiftui Jet

## Prototyping as a Quick and Cost-Effective Way to Test Hypotheses

DevFeed: [Prototyping as a Quick and Cost-Effective Way to Test Hypotheses](<https://devfeed.tech/articles/prototyping-as-a-quick-and-cost-effective-way-to-test-hypotheses-23911.md>)

Original publisher: [Read original article](<https://medium.com/icerock/prototyping-as-a-quick-and-cost-effective-way-to-test-hypotheses-7ee185ef9095?source=rss----b74ae24564e---4>)

Author: IceRock Development

Published: 2023-04-28T03:14:33Z

Content type: tutorial

Language: en

Sources: [IceRock Development - Medium](<https://devfeed.tech/sources/icerock-development-medium.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [App](<https://devfeed.tech/topics/app.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [interface](<https://devfeed.tech/tags/interface.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [prototypes](<https://devfeed.tech/tags/prototypes.md>), [prototyping](<https://devfeed.tech/tags/prototyping.md>), [ui-design](<https://devfeed.tech/tags/ui-design.md>)

### AI overview

This article explains how IceRock uses wireframe and design prototypes to evaluate mobile app ideas, clarify navigation and functionality, demonstrate interfaces to clients, and support testing before development. It contrasts clickable prototypes with screen maps and describes low- and high-fidelity approaches.

### Source excerpt

Businesses are always looking for ways to launch apps quickly and with minimal development costs. There are various ways to do this: sketch your app design, launch apps from scratch with frameworks, or use builders. Different situations call for different solutions. In this article, I will tell you about the approaches we use at IceRock. Our company specializes in outsource development of mobile apps, so we constantly look for new ways to speed up the development and enhance tried-and-true workflows. Why a Prototype is Better than a Screen Map Before we start the development, we prepare one or several prototypes of the future app. This is more efficient than going straight to design or starting to develop the app right away. A screen map is a set of images showing all app screens and their relationships. It visualizes the flow of the screens, but it doesn't allow you to get a feel for the result and understand how usable the interface will be. In other words, it is less illustrative. Clickable prototypes are more informative. We divide prototyping into two parts: we use a "wireframe prototype" before the design, and a "design prototype" after. A wireframe prototype is a schematic prototype that helps us understand the navigation and functionality aspects of an app. A design prototype is a product assembled once the UI design is complete. It is used to demonstrate the future app to the customer, for marketing purposes, and sometimes for testing. It also shows the developers how the final app is supposed to work. After the design, we make a clickable prototype. The level of detail in this prototype can vary according to the client's needs: it can be low-fidelity or high-fidelity. Low-fidelity prototypes consist of static images with active links to the next screens on the buttons. This is the type of prototype we used for the Snow4u project. High-fidelity prototypes are very similar to the app and fully interactive: you can type any text in the input fields, there are

## Faster Development at a Lower Cost. Migration to Kotlin Multiplatform Mobile

DevFeed: [Faster Development at a Lower Cost. Migration to Kotlin Multiplatform Mobile](<https://devfeed.tech/articles/faster-development-at-a-lower-cost-migration-to-kotlin-multiplatform-mobile-23903.md>)

Original publisher: [Read original article](<https://medium.com/icerock/faster-development-at-a-lower-cost-migration-to-kotlin-multiplatform-mobile-4f27518b99a5?source=rss----b74ae24564e---4>)

Author: IceRock Development

Published: 2023-04-28T03:13:33Z

Content type: tutorial

Language: en

Sources: [IceRock Development - Medium](<https://devfeed.tech/sources/icerock-development-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Development](<https://devfeed.tech/topics/development.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app](<https://devfeed.tech/tags/app.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [code](<https://devfeed.tech/tags/code.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

This article explains when and how to migrate existing Android and iOS applications to Kotlin Multiplatform Mobile. It outlines migration scenarios, potential budget and development-time benefits, and examples involving shared business logic.

### Source excerpt

Kotlin Multiplatform Mobile is a multiplatform tool that allows you to write universal code for iOS and Android, while saving up to a third of your budget and speeding up the development by 25%. But what if you already have a project, and you want to migrate to KMM? In this article we talk about what type of multiplatform migration costs $1300, $6000 and $40000. When should you integrate KMM? You can migrate to Kotlin Multiplatform Mobile both at the start of your development and at the implementation or launch stage. In order for the migration to make sense, one or more of the following conditions should apply: You already have an app for multiple platforms, Android and iOS, or you have just started developing such an app. Your app with Android and iOS versions has a complex business logic but a simple UI. For instance, it uses offline synchronization. You already have an Android app in Kotlin, but you urgently need an iOS version which utilizes your previous work. 60% of developers use or have tried Kotlin Multiplatform in production according to this recently published survey by JetBrains.What are the benefits of KMM integration? It can potentially save you up to a third of your budget. This is mainly because you develop a common code base for two platforms, Android and iOS, which can be done by a single developer. You can speed up your development by 25% and implement new features on both platforms faster and easier in the future. The projects will behave identically on these platforms without any discrepancies in minute details or complex cases. iOS and Android developers will share the context, which will allow them to understand each other's code in any part of the business logic and to promptly improve and fix it. These might be the reasons why over 75% of those who have played around with Kotlin Multiplatform are considering to use it for their production projects.How does KMM migration occur? The process of migrating to KMM depends on your current situatio

## Faster Development at a Lower Cost. Migration to Kotlin Multiplatform Mobile

DevFeed: [Faster Development at a Lower Cost. Migration to Kotlin Multiplatform Mobile](<https://devfeed.tech/articles/faster-development-at-a-lower-cost-migration-to-kotlin-multiplatform-mobile-24583.md>)

Original publisher: [Read original article](<https://medium.com/icerock/faster-development-at-a-lower-cost-migration-to-kotlin-multiplatform-mobile-4f27518b99a5?source=rss-2f461fccc401------2>)

Author: IceRock Development

Published: 2023-04-07T12:08:45Z

Content type: article

Language: en

Sources: [Stories by IceRock Development on Medium](<https://devfeed.tech/sources/stories-by-icerock-development-on-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Development](<https://devfeed.tech/topics/development.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [cost](<https://devfeed.tech/tags/cost.md>), [development](<https://devfeed.tech/tags/development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

This article explains when and how to migrate existing Android and iOS applications to Kotlin Multiplatform Mobile. It outlines migration scenarios and discusses potential budget savings, faster development, shared business logic, and platform consistency, while citing cost examples and survey findings.

### Source excerpt

Kotlin Multiplatform Mobile is a multiplatform tool that allows you to write universal code for iOS and Android, while saving up to a third of your budget and speeding up the development by 25%. But what if you already have a project, and you want to migrate to KMM? In this article we talk about what type of multiplatform migration costs $1300, $6000 and $40000. When should you integrate KMM? You can migrate to Kotlin Multiplatform Mobile both at the start of your development and at the implementation or launch stage. In order for the migration to make sense, one or more of the following conditions should apply: You already have an app for multiple platforms, Android and iOS, or you have just started developing such an app. Your app with Android and iOS versions has a complex business logic but a simple UI. For instance, it uses offline synchronization. You already have an Android app in Kotlin, but you urgently need an iOS version which utilizes your previous work. 60% of developers use or have tried Kotlin Multiplatform in production according to this recently published survey by JetBrains.What are the benefits of KMM integration? It can potentially save you up to a third of your budget. This is mainly because you develop a common code base for two platforms, Android and iOS, which can be done by a single developer. You can speed up your development by 25% and implement new features on both platforms faster and easier in the future. The projects will behave identically on these platforms without any discrepancies in minute details or complex cases. iOS and Android developers will share the context, which will allow them to understand each other's code in any part of the business logic and to promptly improve and fix it. These might be the reasons why over 75% of those who have played around with Kotlin Multiplatform are considering to use it for their production projects.How does KMM migration occur? The process of migrating to KMM depends on your current situatio

## Prototyping as a Quick and Cost-Effective Way to Test Hypotheses

DevFeed: [Prototyping as a Quick and Cost-Effective Way to Test Hypotheses](<https://devfeed.tech/articles/prototyping-as-a-quick-and-cost-effective-way-to-test-hypotheses-24588.md>)

Original publisher: [Read original article](<https://medium.com/icerock/prototyping-as-a-quick-and-cost-effective-way-to-test-hypotheses-7ee185ef9095?source=rss-2f461fccc401------2>)

Author: IceRock Development

Published: 2023-02-09T10:58:46Z

Content type: article

Language: en

Sources: [Stories by IceRock Development on Medium](<https://devfeed.tech/sources/stories-by-icerock-development-on-medium.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [ui](<https://devfeed.tech/topics/ui.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [apps](<https://devfeed.tech/tags/apps.md>), [cost](<https://devfeed.tech/tags/cost.md>), [design](<https://devfeed.tech/tags/design.md>), [effective](<https://devfeed.tech/tags/effective.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [prototyping](<https://devfeed.tech/tags/prototyping.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-design](<https://devfeed.tech/tags/ui-design.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

The article explains how IceRock uses wireframe and design prototypes during mobile app development. It argues that clickable prototypes communicate navigation, functionality, usability, and final behavior more effectively than screen maps, with fidelity varying according to client needs.

### Source excerpt

Businesses are always looking for ways to launch apps quickly and with minimal development costs. There are various ways to do this: sketch your app design, launch apps from scratch with frameworks, or use builders. Different situations call for different solutions. In this article, I will tell you about the approaches we use at IceRock. Our company specializes in outsource development of mobile apps, so we constantly look for new ways to speed up the development and enhance tried-and-true workflows. Why a Prototype is Better than a Screen Map Before we start the development, we prepare one or several prototypes of the future app. This is more efficient than going straight to design or starting to develop the app right away. A screen map is a set of images showing all app screens and their relationships. It visualizes the flow of the screens, but it doesn't allow you to get a feel for the result and understand how usable the interface will be. In other words, it is less illustrative. Clickable prototypes are more informative. We divide prototyping into two parts: we use a "wireframe prototype" before the design, and a "design prototype" after. A wireframe prototype is a schematic prototype that helps us understand the navigation and functionality aspects of an app. A design prototype is a product assembled once the UI design is complete. It is used to demonstrate the future app to the customer, for marketing purposes, and sometimes for testing. It also shows the developers how the final app is supposed to work. After the design, we make a clickable prototype. The level of detail in this prototype can vary according to the client's needs: it can be low-fidelity or high-fidelity. Low-fidelity prototypes consist of static images with active links to the next screens on the buttons. This is the type of prototype we used for the Snow4u project. High-fidelity prototypes are very similar to the app and fully interactive: you can type any text in the input fields, there are

## iOS Screen Navigation Engine at Revolut

DevFeed: [iOS Screen Navigation Engine at Revolut](<https://devfeed.tech/articles/ios-screen-navigation-engine-at-revolut-26345.md>)

Original publisher: [Read original article](<https://medium.com/revolut/ios-screen-navigation-engine-at-revolut-1b189f45240?source=rss----44c5ac415e14---4>)

Author: Vincent Berihuete

Published: 2022-08-17T11:35:30Z

Content type: tutorial

Language: en

Sources: [Revolut Engineering](<https://devfeed.tech/sources/revolut-engineering.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Code](<https://devfeed.tech/topics/code.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fintech](<https://devfeed.tech/tags/fintech.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [ios-engineering](<https://devfeed.tech/tags/ios-engineering.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [revolut](<https://devfeed.tech/tags/revolut.md>)

### AI overview

This article describes Revolut's custom Flow Engine for iOS screen navigation. It compares storyboard- and view-controller-driven navigation with an abstraction that uses a state machine to manage flows, screens, dependencies, and actions.

### Source excerpt

Ever heard about the Coordinator pattern? Good for you, this article isn't about it. I'm here to open your eyes to Custom Navigation Engines just like the one we created on our Revolut Flow Engine. First let's talk about some traditional approaches for navigation before we get into our Flow engine: Storyboard actions navigation The most traditional way of doing navigation with storyboards is the one that's triggered by an action. As you know, you can ctrl + drag from your button to reach the desired screen on your storyboard. Segue driven navigation Another traditional type of storyboard navigation are segues, by doing ctrl+drag from one view controller to another we create a connection of a certain type (push, modally, etc) and assign it an ID. https://medium.com/media/8976cef3dea76b0581556b979848d899/href ViewController code driven navigation The most traditional way outside storyboards, is to instantiate and push or present your view controllers programmatically. https://medium.com/media/efae70b3641c09ff15c404f46504a84e/hrefFlow Engine Now let's bring out the big guns: the abstraction of navigation outside view controllers. Why do we need to abstract navigation? Well, imagine you have a FoodDeliveryApp and in there you have a screen called ProductDetails that shows the information for a given product (Hamburger 🍔, fish and chips 🍟, etc) -- but you want to call this screen and its dependencies from anywhere. Will it be enough to just instantiate the screen everywhere, with its dependencies and its actions? 🤯 of course not! 😅 Wait, what? Don't worry, here's some code: https://medium.com/media/b24d2268c0b542848c5d8a6f05379a6e/href When we want to call our ProductDetail screen and pass its business actions through dependency injection, we end up doing this: https://medium.com/media/cb3e85b0c7ae83eb4080db9b221086f3/href Code looks clean to you? Well, kind of 😅. What happens when you need to show that product page from other view controllers and handle its actions? .sho