Skip to main content

Should I Learn Native iOS Development as a Flutter Developer?

Created
Active
Viewed 1k times
21 replies
9

I have been working as a Flutter Developer for nearly 3 years, focusing on building cross-platform applications. Flutter has been my go-to framework for developing apps for both iOS and Android, and I've successfully deployed several apps to the App Store and Play Store.

Is learning native iOS worth the effort as a Flutter developer, or should I stick to enhancing my Flutter expertise?

Thanks in advance for your advice!

21 replies

Sorted by:
79221583
6

It's actually good, knowing how to develop native code is a good approach, if you have time maybe learn how to develop native android as well, I believe that Flutter is actually save cost and time for developing apps, but anyway it still have limitation compare to native platform, when you need to develop high end app like e-commerce or making a secure app like banking app or something, you're sure need to develop using native iOS or Android instead of using flutter, plus Swift right now is always update and there are many new things coming right up, I think it's a good time for you to start consider your journey on Native iOS, especially since you already have strong experience with Flutter I'm sure you will catch up with swift/swiftui easily.

79221679
7
  1. If you aim to be a specialized cross-platform developer, native iOS development is a bonus, not a requirement.

  2. If you’re aiming for long-term versatility in mobile app development or building complex apps, learning native iOS development is worth it.

79229891
0

I have worked as native Android (Kotlin, JetpackCompose) and native iOS (SwiftUI) developer for some time, after i worked as a Flutter Developer for nearly 3 years.

As they use declarative ways to express their UI like Flutter does, it is not hard at all to get started with them.

Beside multiple drawbacks of the programming language compared to Dart, it is a pain to work with them.

The Developer experience is unexpectedly bad.

Focusing on Apple:

  • Your UI looks always the same (as this is the way)

  • You are forced to use MVVM

  • As async programming is bound to the UI, you have to implement a lot of logic in the UI

  • Inline docs are often missed or very short, so you have to rely on the documentation in the web which seem to be bad indexed and likes to link from one page to another, often redirecting to where you have begun

  • Hot Reload and Hot Restart don't exist

  • You are forced to use XCode (which likes to fail to index your project; require to reset you complete cache before even restarting your app; ...)

  • Stacktraces are nearly useless (except you are an experienced C/C++ developer)

  • Having a Swift Type definition is no guarantee that this type is really used if your packages are Objective C based

And many more.

So what are the Advantages you will gain, after already using Dart and Flutter?

  • You may gain the skill to add your own native iOS packages to Flutter.

  • You can use the Rive Render Engine for Rive Animations if you are interested in Animations (as of now, they have no custom implementation for Flutter)

  • Your Apps will shrink in size (like from 8MB to 2MB maybe), but need to be developed for any other platform again

79285866
0
  • 583
  • 1
  • 5
  • 18

Swift has "multiple drawbacks... compared to Dart"?

SwiftUI "forces" you to use MVVM??? But also "async programming is bound to UI"...

Stacktraces "are nearly useless"? Are you suggesting debugging is useless in Xcode?

This is a strange reply when compared to what others have said.

79287680
0
  • 573
  • 4
  • 9

what do you mean by Stacktraces are useless?

when you code in Swift then the stack trace shows you the function names in Swift language not C/C++.

79410104
0

I developed a multiplatform mobile app for both Android and iOS using the Compose Multiplatform framework, which is different from Jetpack Compose but built on similar principles. It’s not exactly KMP (Kotlin Multiplatform), but Compose Multiplatform is an upgraded version that allows for Kotlin code on both Android and iOS. Most of the code (over 95%) was written in Kotlin, with just a few customizations needed for iOS system-level SDKs. It’s fast, especially since it uses native code, making it perform better than React Native or Flutter in many cases. So if your project requires high-performance, I’d recommend looking into Compose Multiplatform.

Knowing how to develop native code is definitely a plus, and if you’ve got the time, learning native Android development might be worth considering. Flutter is great for saving time and reducing costs when developing apps, but when it comes to high-end apps—like those requiring advanced security, such as banking apps, or complex e-commerce platforms—you’re better off using native development (iOS/Android). Swift is constantly updated with new features, and I think it’s a great time to dive into native iOS development, especially if you’re already familiar with Flutter. You’ll pick up Swift/SwiftUI pretty easily with your experience.

79413924
0

@Lucas Kim i can't say something about the performance related to Kotlin Multiplatform but there are already banking apps out there using Flutter. So i wouldn't say this is a point.

79254279
0

I learned both native iOS and flutter , benefit of learning iOS can be:

  • easy to integrate external capabilities such as siri kit , widgets etc

  • learning iOS can benefit you in better understanding of iOS ui and features guidelines set by apple

  • learning native iOS can help in having better insight of iOS related problems

  • learning both can help overcoming a lot of limitations of both technologies .

79260972
0

Depends on your needs. If you want to save time and code one app for multiple platforms, then Flutter is the perfect language. However, if you want to build Android-optimized apps for Android (Flutter), and also want to build iOS apps optimized for iOS, then learning iOS Native Development would be recommended.

79261483
0
  • 125.1k
  • 19
  • 188
  • 278

Obviously, only you can decide whether learning native iOS is worth the effort for you, so I'd suggest taking a cost/benefit approach. How much effort would learning native iOS development be for you? How often would knowing native iOS benefit you?

  • Are you a quick learner? Was learning Flutter quick and easy for you, or did it take what you would consider to be a lot of effort?

  • Are you planning to write a native iOS app?

  • Do you often run into things that you can't do well in Flutter?

  • Are you looking for a new job and thinking that native iOS knowledge will help broaden your options?

  • When you say "native iOS," what do you mean exactly? UIKit? SwiftUI? Metal? You don't have to learn all of iOS to get a lot of benefit; if you're working mostly in Flutter, you might be able to learn just what you need to get the functionality that you want.

If you think that native iOS might be "worth the effort" for you, what's stopping you from giving it a try? You can download Xcode for free and there's lots of info out there to get you started for little or no money.

79274389
0

It's good to have some knowledge of native development when you're a Flutter developer, but if you've got something that keeps you busy, I don't think it's necessary to go to the trouble of learning IOS development. The minimum you need to know, in my opinion, is the configuration of each platform you're targeting, and then, if you need to do native code in your Flutter project, you do the research for what you want to do.

79288044
0

Hello.

As a swift developer that learned Flutter after, I would say that learning basics of iOS dev would help you in your Flutter expertise.

79310976
0

Learning the basics of iOS development can enhance your Flutter expertise by giving you a deeper understanding of platform-specific features. It’s a valuable complement to your cross-platform

79310919
0

If you want to increase your framework stack, you should. Let me tell you that the native frameworks are more powerful and have more core access as respective to the hybrid frameworks.

79310974
0

If your projects require advanced iOS-specific features, high performance, or you want to expand your career opportunities, learning native iOS (Swift) is worth it. However, if most of your work can be managed efficiently with Flutter’s growing ecosystem, focus on enhancing your expertise there. Dual expertise can make you a more versatile developer.

79341761
0
  • 2.2k
  • 4
  • 35
  • 65

Let‘s say one day PM needs a Dynamic Island feature, then you need to learn native iOS dev :)

79342393
0

If you've been doing Flutter for almost 3 years, you're already solid at cross-platform apps. Now, deciding if you should dive into native iOS dev or just level up your Flutter game really depends on what you wanna do in your career, what kind of projects you’re working on, and what excites you.

Why go native iOS?

  • Access to iOS features: With native iOS dev, you get the full iOS API experience. Some things Flutter can't do 100%, so if you need that deep iOS integration, native might be the way to go.

  • Better performance: Flutter is fast, but for some heavy apps, native might still have the edge in performance. If you're working on complex stuff, native dev can squeeze out a little more.

  • More job options: If you pick up Swift and dive deep into iOS, you’ll open up more job opportunities. Some places want native dev skills, so it could expand your market.

Things to think about:

  • Learning curve: Switching gears to Swift and the whole iOS SDK might take some time. But since you've got a dev background, it shouldn’t be too tough.

  • Project needs: If you’re handling projects that Flutter can handle well, you might as well stick with it. Flutter’s growing strong, and there’s a lot of community support to keep pushing it forward.

Bottom line: If you're aiming for projects that need serious iOS features or want to stand out in job markets, learning native iOS might be worth it. But if you're feeling comfortable in Flutter and it checks all the boxes for your projects, then doubling down on Flutter might be the smarter move. Do what fits your vibe and future goals.

79344190
0

I have the opposite problem I am in advanced level of Android native is it worth to learn Flutter or React Native as Cross platform ?

there's many questions mark but you have to remark cons and pros

79356484
0

As per my journey I started from native android ,then l worked with flutter, after that I started ios , using objective-c uikit then did some projects in swiftUI,
what I learned from my expereince that there will be alot of scenerios in your development journey as a mobile application where knowledge and understanding of native platfrom will be necessary, like maybe in your flutter application you want to use native functionality whose package is not yet available , or you want to create a plugin of your ownself like that,
so my suggestion better start with objective-c then move to swift and its different versions
Good LUCk

79360823
0

If you want to create android apps too, enhancing your flutter expertise is better, but if you want to focus on creating ios apps, learning native ios development is a better choice, but the flutter is crossplatform. But if you enhance your flutter expertise, you can get android, web, desktop and ios projects too. You can learn it with flutter but it's a bonus, not requirement.

79381406
2
  • 839
  • 2
  • 15
  • 46

I began my journey by learning native Android development, followed by native iOS development. Now, I primarily build my apps using Flutter. I highly recommend starting with native app development, as it provides deeper insights and significantly enhances your overall experience and skills.