Need advice about which tool to choose?Ask the StackShare community!

Android SDK

26.7K
20.1K
+ 1
799
Flutter

16.4K
15.7K
+ 1
1.2K
Add tool

Android SDK vs Flutter: What are the differences?

Introduction:

In this article, we will explore the key differences between Android SDK and Flutter. Android SDK is a software development kit provided by Google for creating Android applications, while Flutter is an open-source UI toolkit developed by Google for building natively compiled applications for mobile, web, and desktop from a single codebase.

1. Native vs. Cross-Platform Development:

One of the major differences between Android SDK and Flutter is the approach they take towards development. Android SDK allows developers to build native Android applications using Java or Kotlin programming languages. On the other hand, Flutter enables cross-platform development, where developers can write a single codebase that can be compiled into both Android and iOS applications.

2. User Interface Development:

Android SDK follows a traditional approach for building user interfaces using XML layouts and supporting libraries. Developers can leverage the vast Android ecosystem to create rich and customized UIs. In contrast, Flutter uses a declarative UI programming model, where the user interface is defined using a combination of widgets and layouts, resulting in a highly customizable and visually appealing UI.

3. Performance and Efficiency:

When it comes to performance, Android SDK apps are known for their native performance as they are written in platform-specific languages like Java or Kotlin. Flutter, on the other hand, uses a rendering engine called Skia, which enables high-performance graphics and animations. While Flutter achieves near-native performance, it may not be as efficient as native apps due to the additional overhead introduced by the Flutter framework.

4. Development Environment and Tooling:

Android SDK has extensive tooling support, including Android Studio, which provides a rich development environment with features like code completion, debugging, and profiling. Flutter, on the other hand, comes with its own development environment called Flutter SDK, which includes a command-line interface and the Flutter DevTools for debugging and profiling Flutter apps. While Android SDK has mature tooling and a larger ecosystem, Flutter's tooling is constantly improving and becoming more robust.

5. Development Community and Ecosystem:

Android SDK has been around for many years and has a large and vibrant development community. It has a vast ecosystem of libraries, frameworks, and resources to support Android app development. Flutter, being relatively new, has a growing community and ecosystem, but it may not have the same level of maturity and resources as the Android SDK. However, Flutter's popularity is rapidly increasing, and its ecosystem is continuously expanding.

6. Learning Curve and Skillset:

Developing applications with Android SDK requires knowledge of Java or Kotlin programming languages, as well as the Android framework and its components. This may require developers to have a solid understanding of object-oriented programming and the Android ecosystem. On the other hand, Flutter uses the Dart programming language, which has a syntax similar to Java, Kotlin, and JavaScript. Developers familiar with any of these languages can quickly grasp Flutter's concepts and start building apps.

In summary, Android SDK allows native development for Android using Java or Kotlin, while Flutter enables cross-platform development with a single codebase. Android SDK has a mature development environment and a larger ecosystem, while Flutter provides a declarative UI programming model and a growing community. Understanding the specific requirements and constraints of your project can help you choose between Android SDK and Flutter for your app development needs.

Advice on Android SDK and Flutter
Nikhilesh Goyal
Senior Embedded Engineer at GreyOrange · | 5 upvotes · 468.5K views
Needs advice
on
FlutterFlutterReact NativeReact Native
and
UnityUnity

Hi Friends, I am new to #MobileAppDevelopment and I need to make a #CrossPlatformMobileApp. I want guidance regarding which tools should I use to build a mobile app. Main requirements: integrate Unity game engine and provide a platform for social chats.

Past experience - C++ and Python

I have tagged Flutter and React Native but if anything better than both please suggest them.

See more
Replies (3)
Sahil Singh
Product Manager at AutoVRse · | 10 upvotes · 428.3K views
Recommends
on
UnityUnity

Hey, If you are using Unity you are going to have to do the end to end development on Unity, you can directly build for android and iOS on Unity. I dont see how Flutter or React Native fit into this equation. Unity is a standalone engine. As for Social Chats, you could use Firebase or your own API and integrate that in Unity in C#

See more
Recommends
on
UnityUnity

I agree with Sahil. If Unity is a requirement, best way is to use just that to create your app.

If you really want, it should be possible to use Flutter and Unity together. Using Flutter Unity Widget. Although I wouldn't recommend it just yet. It's too early days.

If you do end up using it, I would be very interested in reading about your experiences.

See more
Mathieu Grenier
Recommends
on
UnityUnity

You can start by small steps with Flutter and after Unity. Flutter = best choice to build a small cross-platform mobile app. With or no flutter, use directly Unity. Y'll have complete control but it's harder for new mobile developers. Keep in mind, the requirement is Unity!

See more
Needs advice
on
FlutterFlutter
and
React NativeReact Native

Hi, I'm a web dev and am using Electron for a desktop app. Now I have to develop a mobile app with the following features:

  • Posting/uploading files by users, private messaging between users, download files, moderation of the uploads, push notification of new posts.
  • Mods can ban users and delete files.
  • Share buttons from the library folder of the user phone.
  • When a user uploads a photo, a pencil tool for deleting staff on the pic.

Which tool is better for such a project?

Thanks in advance

See more
Replies (2)
Lee Dydo
Technology Development Manager at Outform · | 5 upvotes · 378.6K views
Recommends
on
React NativeReact Native

Given your experience in electron I think the shortest hop is going to be React Native. Especially since half of the requirements are server-side. Google is doing a pretty great job bringing up Flutter and the tooling is pretty great. For me however, dart seemed like quicksand and not everything is in its final home. React Native is mature, and considering my cursory analysis of your experience and the low complexity of this project, you've got quite a lot of room to grow into Javascript Land. Ultimately, my recommendation is always "play with both, see what you like, and get to know the documentation and the community." Keep your head on a swivel and set aside time to peek greener pastures, but spend most of your time delving deeply into what you're already doing.

But yeah, go with React Native first, get bored of it, learn what the shortcomings are through experience and then see if something else is really more attractive or just a new shiny.

See more
Varun Sharma
CTO at Nugen Computer & I.T. Services · | 5 upvotes · 378.5K views
Recommends
on
React NativeReact Native

Well, I will personally recommend to go for React Native as I have worked in both of them. React native has big community and it is easy to opt as compared to Flutter. There no doubt about the fact that Flutter is a great framework for developing both Android/IOS apps. However, you should have some experience to go for the same. Both will require prior knowledge as for React Native you have to go through Javascript first with which you are already familiar and for Flutter you need to go through Dart. So being familiar with Javascript you should go for React Native. You can go expo which has lot of inbuilt functionalities for the React Native developers.

See more
Needs advice
on
FlutterFlutterIonicIonic
and
React NativeReact Native

Hi, we are an early startup (with an iPOC prototype) but need to get started on our MVP, and our tech developers in India recommended a hybrid, and they use Ionic, then we spoke with a software company in the US and he recommended Flutter or React Native. Any advice or input for us on the differences between these? Our app will need Bluetooth GPS for "near me" and social media sharing reviews capability, and also link on the backend with businesses. Thanks in advance for any help you can give!

See more
Replies (6)
Dario Alves
Arquiteto de Software at Senior sistemas · | 2 upvotes · 489.4K views
Recommends
on
React NativeReact Native

Maturity, Community, Facility, Libs React Native is the principal platform of mobile cross-platform development today, Flutter is it's a promise.

See more
Ahmad Khan
Recommends
on
FlutterFlutter

I would never recommend you to go with Ionic, Because of the User experience it provides is subpar. Flutter is most promising, Can be easily used to develop great user experience in no time. React native is also good, but it's phasing out in my opinion, while Ionic has already phased out. Flutter also provides great developer experience, resulting in fast and productive developers. I would have to press hard to think of a CON about flutter when recommending it for your needs.

See more
Recommends
on
FlutterFlutter

Flutter is built on DART which is written in GO. GO compiles to binary. Hence is faster than any java based framework. It provides superior performance and has a simplified UI process for designing apps.

See more
Kevin Lücke
Recommends
on
FlutterFlutter

It depends also on your team skills. Flutter is fast to learn, fast to develop with and the performance is much better in comparison to React. If your team is already highly skilled in React Native it could be the better option - if not Flutter is my 100% recommendation. We rapidly prototype and deliver MVPs with Flutter since two years.

See more
Nicolas Kovacs
Recommends
on
FlutterFlutter

Even if React Native is older (I didn't say mature) you should go for Flutter, It's works really well and the developer experience is great (auto-completion, plugin etc). I spent years with React Native and now I am using Flutter and I don't regret It. Even if you have to learn a new language, It's pretty simple even more If you know some OOP, Java and Javascript ES6 syntax in some case. One other advantage is the facility to design app in Flutter, you have widgets for everything and you can adapt any design made by your designer. For example you can't make a simple custom box shadow with React-Native ...

See more
Recommends
on
IonicIonic
at

I don‘t have practical experience with flutter but between ionic and react native I‘d say both a perfectly viable options and we have used both for a number of production apps. We normally go with ionic on capacitor because we build a lot of pwa/web apps so we can use the same code for all. We don‘t use much of ionic elements, we do most styles on our own.

The comments that the user experience is bad I cannot agree with. A well designed and developed ionic apo can hardly be distinguished from a native app. But obviously that depends also on the usecase and type of app.

I hope this helps

See more
Alexis Poveda
Needs advice
on
ElectronElectronFlutterFlutter
and
IonicIonic

Hi! I have to develop a software solution for a youth church group, for my graduation project. In the first meeting that I have with the coordinators, they did not have a clear idea of what they want. The biggest problem they have is the attendance control, they do it manually and that causes errors.

I was thinking of developing an Android app in Android Studio because that is the tool I master, but a friend told me that I consider using a tool that builds for iOS, Android and web. I have like 6 months. I own a MacBookAir but I do not know Swift (for iOS). I am familiar with MySQL, PHP, Apache, JSP,HTML,CSS.

Summary: What tool can I use that is easy to learn and easy to scale?

See more
Replies (5)
Recommends
on
IonicIonic

I think you should chose between Flutter and Ionic. With those two options, the main question is about graphs and performance. Are they really important for your application? If the answer is yes, your tool is Flutter but, if the answer is that you need an easy tool to create an app with some basic components I would choose Ionic. You have a library with lots of components that you can use and they have native UI by default (for Android and iOS).

You will find more support if you use Ionic with Angular as frontend framework (you have the option to use Vue or React but this is a new feature for Ionic and I think there are more difficult to learn than Angular).

You can develop and debug the majority of features on PC (I don't know if that is possible with Flutter). And when you will finish the app, create iOS and Android versions is simple.

See more
Recommends
on
IonicIonic

It's probably not relevant anymore, but I think Ionic with Angular as the frontend is the right choice. For IDE I would choose Visual Studio Code. You can just create a basic web application with responsive design, which is already included if you are going to use Ionic components with Material Design to create your app. You don't need to know Swift, you don't even have to create mobile apps, just create a responsive (Ionic already is) web app, or PWA. Upon browsing your website from a mobile device for example using google chrome, you will be prompted to create a shortcut of the website in your mobile phone. After you do this, there will be an icon in your phone that looks like an icon to launch an app, it will launch your website in full screen mode - for the user's perspective it will look like he is using a native app. Access https://ionicframework.com/docs/angular/pwa from your android chrome browser, go to tab options (3 vertical dots), click on Add to Home screen. When you launch the website from the shortcut, you'll see that it behaves and looks like a native app.

See more
Recommends
on
FlutterFlutter

Flutter is easy to use and easy to understand. Once you have completed the android platform, you can easily build it to ios, Web or desktop on a single code base.

See more
Carlos Esteban Lopez Jaramillo
Recommends
on
IonicIonic
  1. Electron is for desktop apps, so not useful for you.
  2. Flutter has better performance, but Ionic is decent as well, I would use Ionic unless you're making a game or graphic-intensive app.
  3. Ionic is more flexible since you have the whole NPM ecosystem available, while flutter is more recent, thus libraries for it are less in quantity and battle-tested than the ones in NPM.
  4. Ionic 4 introduced CSS variables, which improved immensely the theming process for the app, which was the hardest issue Ionic development had.
  5. Ionic has extended to many frameworks so it's compatible with Angular and React frameworks, meaning more flexibility, personally I would recommend Ionic with Angular over React since it's more suited to enterprise-level apps.
See more
Alejandro Ulate Fallas
Mobile Developer at Build SRL · | 2 upvotes · 298.7K views
Recommends
on
IonicIonic

Hi there. So Electron embeds everything in a webview, which means that what you would have to develop would be a Node project most probably. Ionic does the same (kindof but won't bore you with specifics) but it does it much more efficiently. Usually you do Ionic apps with JS frameworks like Angular or React (this one recently added). Flutter on the other hand does native apps, it does it really good but it's support for Web is in beta and it's relatively simple to setup if you already know the SDK and the environment.

My recommendation would be that you do your app using Angular/Ionic if you reaaally need the multi-platform environment and there's different reasons in this case:

  • Since it's a graduation project you need it to be as simple as it can be and adding a new technology adds to the learning curve.
  • Flutter is great if you have different complex UI or if you have specific performance needs that require native support and in your case it does not seem like you need that.
  • Flutter is also an incredibly powerful tool but it's learning curve might be tricky if you have not developed native apps before so I wouldn't recommend you start off like this if you have time sensitive projects like a graduation project. It does have great docs and an awesome community but I'd suggest you stick as close to what you know as you can.
  • Ionic/Angular uses Typescript (a type javascript wrapper) and Angular (JS framework) so you will have to learn a little bit but if you already know HTML, CSS and Javascript you won't have that much of a hard time. Also there's quite a lot in terms of documentation and tooling already tested around this combination.
  • Ionic/Angular has a really good CLI that helps you stick to the architecture they recommend so you wouldn't have to worry about it that much.
  • Ionic/Angular helps you test either locally in the web browser as well as your devices which is in the end what you want if you are looking for a multi-platform system. Flutter also does this but is not quite in a stable state (yet!).

Anyway, in the end, if you go for the multi-platform suggestion I think, because of time you would be better off with Ionic. If you decide that you don't need that as of right now (which is fine as well) you can start with just the Android app and plan on the different things you might eventually need like a website or other different stuff. Cheers!

See more
Decisions about Android SDK and Flutter
Omran Jamal
CTO & Co-founder at Bonton Connect · | 7 upvotes · 550.7K views

We actually initially wrote a lot of networking code in Kotlin but the complexities involved prompted us to try and compile NodeJS for Android and port over all the networking logic to Node and communicate with node over the Java Native Interface.

This turned out to be a great decision considering our battery usage fell by 40% and rate of development increased by a factor of 2.

See more
Thuan Nguyen
FE Lead at SOLID ENGINEER · | 5 upvotes · 614.3K views
  • Javascripts is the most populated language in the world.
  • Easy to learn & deployed production
  • Fast development
  • Strong community
  • Completed Documents
  • Native performance with lower RAM used.
  • Easy to handle native issues by using native code like Java / Objective C
  • Powered by Facebook.
See more

As an early stage startup, we needed to create the first version of our mobile application having in mind the future need of supporting multiple platforms (iOS & Android). We gave Flutter a try and immediately experienced a smooth and easy way to learn a mobile platform (with Dart) that allowed us to very quickly create our mobile app. The more we learn, the more we can leverage the ecosystem of libraries/plugins for Flutter (https://pub.dev/), the more we foresee Flutter as a very good choice for cross platform mobile development. In comparison, Android (Java) and iOS (with Swift) are powerful languages but they both have a steep learning curve. With Flutter we only had to learn one platform and voilà !

See more
awesomebanana2018
Chose
FlutterFlutter
over
IonicIonic

While with Ionic it is possible to make mobile applications with only web technologies, Flutter is more performant and is easy to use if you are willing to learn Dart, which is a fun language. Plus, it has awesome documentation and, while its ecosystem isn't near as big as JavaScript's is, it has a good package manager called Pub and its packages are generally high quality.

See more
Nick Skriabin

We built the first version of our app with RN and it turned out a mess in a while. A lot of bugs along with poor performance out of the box for a fairly large app. Many things, that native platform has, cannot be done with existing solutions for RN. For instance, large titles on iOS are not fully implemented in any of existing navigations libraries. Also there's painfully slow JSON bridge and many other small, yet annoying things. On the other hand Flutter became a really powerful and easy-to-use tool. A bit of a learning curve, of course, because of Dart, but it worth learning. Flutter offers TONS of built-in features, no JSON-bridge, AOT compilation for iOS.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Android SDK
Pros of Flutter
  • 289
    Android development
  • 155
    Necessary for android
  • 128
    Android studio
  • 86
    Mobile framework
  • 82
    Backed by google
  • 27
    Platform-tools
  • 21
    Eclipse + adt plugin
  • 5
    Powerful, simple, one stop environment
  • 3
    Free
  • 3
    Больно
  • 141
    Hot Reload
  • 119
    Cross platform
  • 103
    Performance
  • 89
    Backed by Google
  • 72
    Compiled into Native Code
  • 59
    Fast Development
  • 58
    Open Source
  • 53
    Fast Prototyping
  • 49
    Single Codebase
  • 48
    Expressive and Flexible UI
  • 36
    Reactive Programming
  • 34
    Material Design
  • 30
    Dart
  • 29
    Widget-based
  • 26
    Target to Fuchsia
  • 20
    IOS + Android
  • 17
    Easy to learn
  • 16
    Great CLI Support
  • 14
    You can use it as mobile, web, Server development
  • 14
    Tooling
  • 13
    Debugging quickly
  • 13
    Have built-in Material theme
  • 12
    Target to Android
  • 12
    Community
  • 12
    Good docs & sample code
  • 11
    Support by multiple IDE: Android Studio, VS Code, XCode
  • 10
    Written by Dart, which is easy to read code
  • 10
    Easy Testing Support
  • 9
    Real platform free framework of the future
  • 9
    Have built-in Cupertino theme
  • 9
    Target to iOS
  • 8
    Easy to Unit Test
  • 8
    Easy to Widget Test
  • 1
    Large Community

Sign up to add or upvote prosMake informed product decisions

Cons of Android SDK
Cons of Flutter
    Be the first to leave a con
    • 29
      Need to learn Dart
    • 10
      Lack of community support
    • 10
      No 3D Graphics Engine Support
    • 8
      Graphics programming
    • 6
      Lack of friendly documentation
    • 2
      Lack of promotion
    • 1
      Https://iphtechnologies.com/difference-between-flutter

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Android SDK?

    Android provides a rich application framework that allows you to build innovative apps and games for mobile devices in a Java language environment.

    What is Flutter?

    Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Android SDK?
    What companies use Flutter?
    See which teams inside your own company are using Android SDK or Flutter.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Android SDK?
    What tools integrate with Flutter?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Android SDKBugsnagLeakCanary+3
    5
    1073
    Jul 16 2019 at 9:19PM

    Bugsnag

    JavaAndroid SDKBugsnag+3
    3
    420
    GitHubPythonNode.js+47
    54
    72275
    What are some alternatives to Android SDK and Flutter?
    Android Studio
    Android Studio is a new Android development environment based on IntelliJ IDEA. It provides new features and improvements over Eclipse ADT and will be the official Android IDE once it's ready.
    Ionic
    Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.
    React Native
    React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
    Xamarin
    Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.
    Corona SDK
    It is a cross-platform framework ideal for rapidly creating apps and games for mobile devices and desktop systems. It builds rich mobile apps for iOS, Android, Kindle and Nook. Build high quality mobile apps in a fraction of the time.
    See all alternatives