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

Android SDK

26.9K
20.4K
+ 1
799
Expo

718
677
+ 1
66
Add tool

Android SDK vs Expo: What are the differences?

Key Differences between Android SDK and Expo

Android SDK and Expo are platforms used for developing mobile applications, but they have key differences that set them apart.

  1. Development Environment: Android SDK requires developers to set up a development environment including installing Java Development Kit (JDK), Android Studio, and other necessary tools. On the other hand, Expo provides a more streamlined development environment where developers can start building their apps without the need for complex setups.

  2. Codebase Access: Android SDK allows developers to have direct access to the device's native APIs and features, giving them more control over the app's functionality and performance. Meanwhile, Expo offers a higher level of abstraction, limiting access to only a curated set of APIs. This trade-off allows for faster and cross-platform development but may restrict flexibility and access to specific device capabilities.

  3. Native Module Support: Android SDK allows developers to leverage native modules or libraries written in Java or Kotlin for specific functionalities or performance optimizations. In contrast, Expo relies heavily on JavaScript-based libraries and does not support custom native modules by default. This can be a limitation for certain advanced features or integration scenarios requiring native code.

  4. Publishing Apps: With Android SDK, developers need to go through a more involved process of signing and optimizing the app's APK before publishing to the Google Play Store. In contrast, Expo simplifies the app publishing process by providing a command-line interface (CLI) to handle code signing and APK generation, making it easier to distribute apps.

  5. Over-the-Air Updates: Expo has a distinct advantage when it comes to over-the-air (OTA) updates. It provides a mechanism to remotely update apps without requiring users to manually download and install new versions from the app store. This allows for quicker bug fixes and feature updates, ensuring a smoother user experience. Android SDK, on the other hand, lacks built-in OTA update capabilities, requiring users to manually update the app through the app store.

  6. Cross-platform Development: While Android SDK primarily focuses on developing native Android applications, Expo allows for cross-platform development. Expo is built on top of React Native, enabling developers to write a single codebase that can be deployed on both iOS and Android platforms. This significantly reduces the need for platform-specific code and accelerates the development process.

In summary, Android SDK provides more control and access to native capabilities but requires a more extensive setup and maintenance process. In contrast, Expo offers a streamlined development environment, easier app publishing, and cross-platform capabilities, but with limitations in terms of custom native module support and flexibility.

Advice on Android SDK and Expo
Needs advice
on
ExpoExpoReact NativeReact Native
and
ReduxRedux
in

Hello guys, I am new here. So, if I posted without specific guidelines, please ignore.

Basically, I am an iOS developer and developing native apps for the last three years. Recently, I started learning React Native to develop apps for both platforms. If anyone out there knows any useful resources that will become a better react native developer.

#newbie

See more
Replies (1)
Javier Silva Ortíz
Senior Full Stack Developer at Aleph Engineering · | 6 upvotes · 308.3K views
Recommends
on
ReduxRedux

Well, the first resource I would recommend you is my upcoming book by Packt Publishing, "Professional React Native", but it's due late January next year :) . Now jokes aside (the book's real by the way :) ), the easiest way to build a iOS/Android/Web app with React Native is to do: npm install -g expo-cli expo init some-project cd some-project expo eject

You might have heard of Expo, but trust me, stay away from it. Expo highest value is that it's an already pre-configured 3 platforms environment, but if you don't eject then you're vendor-locked to what Expo has to offer in iOS and Android, which is very poor compared to going full React Native on these platforms, they can't even handle Google Sign In properly and by the way, even if your app is 10 lines of code your app size will be over 40 MB if you don't eject, yep it's that bad, plus the performance is regular and the loading times slow, not to mention that you're stuck with their build service which the free tier makes you wait for hours for a free build slot. It's important to note that when ejecting you don't lose the Web, you simply do expo start --web to start your dev environment and expo build:web to build a static website that you can serve with any web server. Regarding state management, don't bother with "lifting state up" philosophies mixed with Context API to manage your state, lifting state is a great pattern and helps your codebase, Context is great to avoid prop-drilling, but NEVER mix them to achieve app-wide state management, for that, simply go for Redux or MobX, the hype is all about Redux, but I consider MobX far better in many aspects. However, as you're getting new into this I would recommend you start with Redux AND PLEASE grab yourself npm install @manaflair/redux-batch so that you can batch updates and don't bring your app to a crawl. Forget that "connect HOC" thing with React-Redux, don't bother for a second with it, go with Hooks and useSelector and useDispatch and the likes, it will make your code SO much cleaner and smaller. Adopt clean and new Hooks philosophy, avoid writing class components as much as possible and write function components augmented with Hooks.

See more
Decisions about Android SDK and Expo
Omran Jamal
CTO & Co-founder at Bonton Connect · | 7 upvotes · 592.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
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Android SDK
Pros of Expo
  • 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
    Больно
  • 15
    Free
  • 13
    Hot Reload
  • 9
    Easy to learn
  • 9
    Common ios and android app setup
  • 6
    Open Source
  • 6
    Streamlined
  • 5
    Builds into a React Native app
  • 2
    PWA supported
  • 1
    Plugins for web use with Next.js

Sign up to add or upvote prosMake informed product decisions

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 Expo?

It is a framework and a platform for universal React applications. It is a set of tools and services built around React Native and native platforms that help you develop, build, deploy, and quickly iterate on iOS, Android, and web apps.

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

What companies use Android SDK?
What companies use Expo?
Manage your open source components, licenses, and vulnerabilities
Learn More

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

What tools integrate with Android SDK?
What tools integrate with Expo?

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

Blog Posts

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

Bugsnag

JavaAndroid SDKBugsnag+3
3
452
GitHubPythonNode.js+47
55
72765
What are some alternatives to Android SDK and Expo?
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.
Flutter
Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.
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.
See all alternatives