Android developers at Nodes strive to build awesome apps using the Material Design Guidelines and Google provided design tools.
Custom designs are important to Nodes and helping the client get the best possible Android experience is a high priority for the Android devs.
- Maintain internal frameworks
- Take over code bases and adapt/update to newest patterns
- Implement and tweak iOS designs to the true Android way
- Help the UX and UI team with the ever-changing design language on Android
- Estimate changes and feature requests on ongoing projects
- Refactor commonly used code into libraries/utilities
- Work closely together with the QA team
Java 1.0 was released in 1995 and is still being used widely today - in part because of Android. Being an old language the toolchain is mature, and features like annotation processing, instant-run and an excellent Java SDK provide a nice toolset for development.
Android Studio is the natural choice for the platform with all the bells and whistles it brings.
- android-butterknife-zelezny - Generate view bindings from the XML file directly
- Markdown support - Preview the markdown layout directly in AS
- Charles Proxy - effectively serves as a MitM proxy which captures all network traffic and helps us debug network issues
- Zeplin - makes it easy to transfer designs to code by providing exact measurements, colors and assets
- Postman - all our APIs are documented through Postman allowing us to easily work together
- Stetho - Really is a library but integrates with Google Chrome as a web proxy for debugging requests/responses
Android has an excellent selection of available libraries for everything. These are some of the tools we use on a day-to-day basis. We always use the latest official design and appcompat libraries from Google as well.
- OkHttp - An HTTP+HTTP/2 client for Android and Java applications.
- Retrofit - Used together with OkHttp as a “frontend” for API interfaces
- OkHttp Logging interceptor - Great logging for quick HTTP debugging
- Picasso - Image loading library by the infamous Jake Wharton
- Glide - Memory efficient and fast image loading - our default choice at the moment
- Realm - Persistence layer with ORM like features
- ButterKnife - View binding made easy
- LeakCanary - Leak detection library for getting rid of those leaks with excellent logging and UI
- UrbanAirshipSDK - integrates with Urban Airship to register for and handle push notifications
- HockeySDK - integrates with HockeyApp to collect crash reports and show application updates during testing
- GoogleAnalytics - analytics and tracking library from Google
- Mixpanel - advanced analytics and user tracking library with features like A/B testing and push notifications
We try to do as much knowledge sharing as we can within the Android team, the result of this being our libraries that contain code for our most common implemented tasks.
- nstack - Inhouse mobile platform for in-app data and translations
- gutenberg - Font library for applying custom fonts easily
- nstack-gradle - Compile time gradle plugin generation of Translation classes
- nutils - Utility framework with minor helpers
- nfusion - REST HTTP API Endpoint Abstraction Library with pluggable auth