JustSharing: Lessons in Android development from Beamly
-
Upload
jg-hackers-justgiving-software-team -
Category
Technology
-
view
143 -
download
3
description
Transcript of JustSharing: Lessons in Android development from Beamly
![Page 1: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/1.jpg)
Android Application
Tim RussellJustSharingAugust 2014
![Page 2: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/2.jpg)
Overview
• What is Beamly?
• Evolution
• Design
• Implementation
• Lessons
![Page 3: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/3.jpg)
Beamly, The Social and Content Network for TV
• How do I find the best shows to watch?
• Where is the best place to find the latest news around show
I love?
• Whenever and wherever I want, how can I chat and share
with other people that love the same TV shows as I do?
![Page 4: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/4.jpg)
![Page 5: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/5.jpg)
App Timeline
Nov 2011iOS App
1st Android ReleaseApr 2012
Sep 2012US Android
TabletSupportApr ‘13
Play Picks (us)Jul ‘13
Play Picks (uk)Jan ‘14
Top DeveloperMar ‘14
Editor’s ChoiceMay ’14
Jan 13 Rebrand
![Page 6: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/6.jpg)
18 months
![Page 7: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/7.jpg)
App Evolution
![Page 8: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/8.jpg)
App Evolution
![Page 9: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/9.jpg)
Our Android Ethos
• Following Google and wider Industry best-practices
• Interoperable with iOS users, but don’t copy app
• Android differences embraced
![Page 10: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/10.jpg)
Design is critical
• Google Guidelines
• Keep abreast of other apps: exploit user familiarity
• User centric
• User testing
• A/B Testing
• Don’t just re-implement other platform
![Page 11: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/11.jpg)
Design
• Responsive
– Phone > 7 inch > 10 inch
• Based on Holo Visual Language
– Maintaining a unique look and feel
– Roboto fonts used throughout
• Introducing Material Visual Language
![Page 12: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/12.jpg)
UI Spec sheets
![Page 13: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/13.jpg)
Android only app features
![Page 14: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/14.jpg)
Use third party libs
• (Actionbar Sherlock)
• Volley (HTTP/Networking)
• Facebook SDK (Login)
• Google Play Services (Google+ Integration)
• Dagger (Compile-time dependency
injection)
• Otto (Event-bus)
• Urban Airship (GCM push notifications)
• Tape (Task queue)
•Gson (JSON (de)serialisation)
•Google Analytics
•Swrve (A/B testing)
•Flurry (analytics)
Most vanilla, some forked with bug fixes/enhancements
![Page 15: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/15.jpg)
Application Architecture
• Standard Activity/Fragment lifecycle
• Compile-time Dependency injection via Dagger
– High-cohesion, loosely coupled
– Aids clean separation of responsibility
– Eases testing
• Manager classes with single responsibility, e.g:
– ConfigServiceManager, CurrentUserManager, FeedDownloadManager
![Page 16: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/16.jpg)
Device Support
• API Level 15+ (Ice Cream Sandwich, 4.0.3)
– 86% of Android Devices Supported (based on Google’s distribution
numbers)
• Minimum 320x480 screen size
– Normal, Large, X-Large sizes
– MDPI and above
• Phones & Tablets
• Amazon Kindle, Blackberry
![Page 17: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/17.jpg)
Testing
• JUnit tests
• Robolectric (Off-device testing)
• Mockito (Mocking)
• FEST assertions (Fluent
assertions)
– assertThat(actual).isEqualTo(expected)
• Calabash UI tests
– GIVEN, WHEN, THEN
• QA team (Feature, regression,
upgrade testing)
• Wide range of test devices in-
house:
– All Google Nexus devices
– All latest Samsung devices
– Majority of other manufacturers
![Page 18: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/18.jpg)
Google Featuring
• Note what Google say
• Review team
– will give feedback
– with expectations
• Google Style Guidelines
• Navigation
• Responsive Layouts
• Touch Feedback
• Consistent Theming
• Android only (Widgets, Notifs)
• Google+
![Page 19: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/19.jpg)
Keep the momentum going
• Don’t reinvent
– Edge cases will burn time
– Devices will catch you out
– Much already tested code
• Treat Itches
– Uncomfortable code slows
dev
• Keep things Simple
– Things will change
– Simple is flexible
– Loosely couple features
– Greater release agility
![Page 20: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/20.jpg)
Improve Quality
• Monitor crashes
– Most users don’t complain,
they simply don’t return
– Fixing crashes feels good
– Continuous incremental
improvements
• Carefully request ratings
• Monitor Play Store Feedback
– It’s the first thing users see
– Reply, politely
– Users can give insights:
make friends
![Page 21: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/21.jpg)
Android Development
• The Good
– Third Party Libraries
– Fast release cycle
– Huge amount of
knowledge
– Google are keen to help
• The Less Good
– Fewer Android designers
– Huge number of devices
– Variability in
implementations
– Webviews
![Page 22: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/22.jpg)
Lessons Learnt
• Design is important
• Quality is important
• Use what’s available
• Keep moving
![Page 23: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/23.jpg)
Guiding Factors
• Innovate on product features
• Simplify where possible
• Follow patterns
• Keep improving
![Page 25: JustSharing: Lessons in Android development from Beamly](https://reader035.fdocuments.net/reader035/viewer/2022081603/558eb8fa1a28ab7d778b4619/html5/thumbnails/25.jpg)
LONDON
Drury House
34-43 Russell Street
London
WC2B 5HA
NEW YORK CITY
84 Wooster Street
Suite 703
New York
NY 10012
SYDNEY
22-36 Mountain Street
Suite 1.10
Ultimo
NSW 2007
© Beamly 2014. All Rights Reserved.