Standardizing things that provide no unique value to an application focuses our time on providing the unique value each application has, giving us a competitive edge in the market. Some choices are made not for convenience of the developers of the app themselves, but to reduce the pain or communication burden of others who care about our products.
Items listed here include tools, libraries, conventions, and processes.
The distributed version control and source code management (SCM) functionality of Git. Source maintained at Github Octanner
We use fastlane to automate pushing apk to beta and production in jenkins build scripts.
Fastlane is the tool to release Android app and handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing application.
Jenkins is a software that allows continuous integration. Android builds are performed automatically after every code commit done in github located at iosbuild
OneSky: Translation Made Easy for Apps, Games and Websites
It's awesome because:
Their workflow is very mobile-centric, and their translators are pretty good to work with. You can switch translators at anytime if you have an issue. There's no retainer fee, you simply pay per translation order. They offer glossary tools, as well as translation memory. You can create separate projects for iOS, App Store, and Android under a single product group.
Translations can be uploaded and downloaded as part of our Fastlane build process.
- Upload your strings early in the feature development, and send off an order. It's not uncommon for translations to take 3-4 business days for less common languages.
- Use standardized error messages. These are the single biggest place that iOS and Android strings drift apart, since the UI spec is the same for both apps.
ReviewBot: Monitor & Analyze Your Online Reviews Get notified via Slack, Email, Trello, or Zendesk
It's awesome because:
It's so easy to keep tabs on what users think of your app! Just set it up and the reviews pour into your Slack channel for all to see.
Tips & Conventions:
People it helps:
- Product: they see how users are reacting to the app
- iOS devs: bug reports often happen in app reviews
Alternatives we don't want to use:
- Manually checking Play Store or the Play Store app
- AppBot, just because it costs more money. Reevaluate when review volumes across apps are high.
Communication Hub: An internal server to send email, push notifications, and text messages to the customers of any of our apps.
It's awesome because:
It lets the server-side apps decide when and how to communicate to customers, and it's written once and then consistently used across all apps we create.
Tips & Conventions:
- Use this in conjunction with the Register Device pattern.
POST
the device info with the endpoint, auth, and payload listed in the docs.- Work with product and API groups to define the exact interactions they want in more sophisticated notifications.
- Handle translation client-side for well-established notifications.
People it helps:
- Users: they get awesome interactions with the app.
- Product: they can work with the backend to create any kind of basic notification without android involvement.
- Enterprise IT: they can work out security and other concerns centrally.