Skip to content

Commit

Permalink
[docs] Add more information about included SDKs and build service (ex…
Browse files Browse the repository at this point in the history
  • Loading branch information
brentvatne authored Sep 19, 2019
1 parent e74bbf4 commit cec4d56
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
5 changes: 3 additions & 2 deletions docs/pages/versions/unversioned/introduction/why-not-expo.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ If you are using the [bare workflow](../../introduction/managed-vs-bare/), the f

- Many device APIs are supported (check out the "SDK API Reference" in the sidebar), but **not all iOS and Android APIs are available yet**: need Bluetooth? Sorry, we haven't built support for it yet. WebRTC? Not quite. One of the most frequent requests we get is for In-App Purchases and Apple and Google Pay integration. We haven't built this yet, but it's on the roadmap. We are constantly adding new APIs, so if we don't have something you need now, you can either use ExpoKit or follow [our blog](https://blog.expo.io) to see the release notes for our SDK updates. Feature prioritization isn't strictly based off of popular vote, but it certainly helps us to gauge what is important to users.
- **The SDK doesn't support all types of background code execution** (running code when the app is not foregrounded or the device is sleeping). We support background geolocation (including geofencing) and background fetch, but we do not yet support background audio with the operating-system playback controls and you cannot handle push notifications in the background. This is a work in progress.
- **If you need to keep your app size extremely lean, the managed workflow may not be the best choice**. The size for a managed Expo app on iOS is approximately 20mb (download), and Android is about 15mb. This is because "managed" includes a bunch of APIs regardless of whether or not you are using them -- this lets you push over the air updates to use new APIs, but comes at the cost of binary size. We will make this customizable in the future, so you can trim down the size of your binaries.
- **If you need to keep your app size extremely lean, the managed workflow may not be the best choice**. The size for a managed Expo app on iOS is approximately 20mb (download), and Android is about 15mb. This is because "managed" includes a bunch of APIs regardless of whether or not you are using them — this lets you push over-the-air updates to use new APIs, but comes at the cost of binary size. Some of the APIs that are included are tied to services that you may not be using, for example the Facebook Mobile SDK is included to support Facebook Login and Facebook Ads, along with the Google Mobile SDK for similar reasons. We will make this customizable in the future, so you can trim down the size of your binaries.
- Related to the previous point, we typically avoid adding native modules to the SDK if they are tied to external, proprietary services — we can't add something to the SDK just because a few users need it for their app, we have to think of the broader userbase. In these cases developers will want to use the [bare workflow](../../introduction/managed-vs-bare/), and they can easily migrate to it by [ejecting](../../workflow/customizing/).
- **If you know that you want to use a particular push notification service** (such as OneSignal) instead of Expo's [Push Notification service/API](../../guides/push-notifications/), you will need to use the bare workflow.
- **The minimum supported OS versions are Android 5+ and iOS 10+**. If you need to support older versions, you will not be able to use the managed workflow.
- We typically avoid adding native modules to the SDK if they are tied to externally controlled services - we can't add something to the SDK just because a few users need it for their app, we have to think of the broader userbase.
- You can easily build your app for submission to stores without even installing Xcode or Android Studio by using the free standalone build service, but it occasionally has a queue depending on how many other folks are building a binary at that time. You can have access to dedicated build infrastructure with a ["Priority" plan](https://expo.io/developer-services), or you can [run the builds on your own CI](../../distribution/turtle-cli/) if you prefer.

Are we missing something here? Let us know on our [forums](http://forums.expo.io/) or on our [feature requests board](https://expo.canny.io/feature-requests).
5 changes: 3 additions & 2 deletions docs/pages/versions/v34.0.0/introduction/why-not-expo.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ If you are using the [bare workflow](../../introduction/managed-vs-bare/), the f

- Many device APIs are supported (check out the "SDK API Reference" in the sidebar), but **not all iOS and Android APIs are available yet**: need Bluetooth? Sorry, we haven't built support for it yet. WebRTC? Not quite. One of the most frequent requests we get is for In-App Purchases and Apple and Google Pay integration. We haven't built this yet, but it's on the roadmap. We are constantly adding new APIs, so if we don't have something you need now, you can either use ExpoKit or follow [our blog](https://blog.expo.io) to see the release notes for our SDK updates. Feature prioritization isn't strictly based off of popular vote, but it certainly helps us to gauge what is important to users.
- **The SDK doesn't support all types of background code execution** (running code when the app is not foregrounded or the device is sleeping). We support background geolocation (including geofencing) and background fetch, but we do not yet support background audio with the operating-system playback controls and you cannot handle push notifications in the background. This is a work in progress.
- **If you need to keep your app size extremely lean, the managed workflow may not be the best choice**. The size for a managed Expo app on iOS is approximately 20mb (download), and Android is about 15mb. This is because "managed" includes a bunch of APIs regardless of whether or not you are using them -- this lets you push over the air updates to use new APIs, but comes at the cost of binary size. We will make this customizable in the future, so you can trim down the size of your binaries.
- **If you need to keep your app size extremely lean, the managed workflow may not be the best choice**. The size for a managed Expo app on iOS is approximately 20mb (download), and Android is about 15mb. This is because "managed" includes a bunch of APIs regardless of whether or not you are using them — this lets you push over the air updates to use new APIs, but comes at the cost of binary size. Some of the APIs that are included are tied to services that you may not be using, for example the Facebook Mobile SDK is included to support Facebook Login and Facebook Ads, along with the Google Mobile SDK for similar reasons. We will make this customizable in the future, so you can trim down the size of your binaries.
- Related to the previous point, we typically avoid adding native modules to the SDK if they are tied to externally controlled services - we can't add something to the SDK just because a few users need it for their app, we have to think of the broader userbase. In these cases developers will want to use the [bare workflow](../../introduction/managed-vs-bare/), and they can easily migrate to it by [ejecting](../../workflow/customizing/).
- **If you know that you want to use a particular push notification service** (such as OneSignal) instead of Expo's [Push Notification service/API](../../guides/push-notifications/), you will need to use the bare workflow.
- **The minimum supported OS versions are Android 5+ and iOS 10+**. If you need to support older versions, you will not be able to use the managed workflow.
- We typically avoid adding native modules to the SDK if they are tied to externally controlled services - we can't add something to the SDK just because a few users need it for their app, we have to think of the broader userbase.
- You can easily build your app for submission to stores without even installing Xcode or Android Studio by using the free standalone build service, but it occasionally has a queue depending on how many other folks are building a binary at that time. You can have access to dedicated build infrastructure with a ["Priority" plan](https://expo.io/developer-services), or you can [run the builds on your own CI](../../distribution/turtle-cli/) if you prefer.

Are we missing something here? Let us know on our [forums](http://forums.expo.io/) or on our [feature requests board](https://expo.canny.io/feature-requests).

0 comments on commit cec4d56

Please sign in to comment.