SlideShare a Scribd company logo
About me
• Nguyen Hoang Anh.
• Developing for 4 years now.
• Just recently made a switch to Android.
Our Android stack
• Dagger 1
• ButterKnife
• RxJava &
RxAndroid
• Retrofit
• Picasso
• Realm.io /
GreenDAO
Dagger 1.x
• Dependency injection framework.
• Developed by Square.
• Been in production for more than 2 years.
• http://square.github.io/dagger/
Dagger 1.x
• Code generation, partially reflection.
• Has some problems with obfuscation.
Dagger 2
• Forked from Dagger 1, developed by Google.
• Fully code generation, no reflection.
• Obfuscation works.
• We will make our transition to Dagger 2 soon.
ButterKnife
• Views injection library.
• Developed by @JakeWharton.
• http://jakewharton.github.io/butterknife/
ButterKnife
RxJava
• A JVM-based Reactive Extension.
• Programming against asynchronous observables.
• https://github.com/ReactiveX/RxJava
RxJava building blocks
• Observables: all the heavy works.
• Subscribers: consume the data.
• Operators: map(), flatMap(), filter() …
• Schedulers.
RxAndroid
• Provides AndroidSchedulers.mainThread()
• https://github.com/ReactiveX/RxAndroid
Retrolambda
• Because we like this fancy arrow ->
• Joking, it’s really unbearable working with
RxJava without Lambda.
• https://github.com/evant/gradle-retrolambda
Example
• Chaining observables: flatMap()
Example
• Convert data to another type: map()
Retrofit
• Developed by Square
• Version 1.9.0
• Square is rolling out version 2.0
• http://square.github.io/retrofit/
Retrofit 1.9.0
• Turn your REST API into a Java interface.
• Add request information using Annotation.
• Support rx.Observables.
Retrofit
Retrofit
Picasso
• Image loader made easy.
• Easy to use API.
• Developed by Square.
• http://square.github.io/picasso/
Picasso
Database
• Realm.io
• GreenDAO
• Both are ORMs but GreenDAO current supports
unit testing a lot better.
Unit tests
• Robolectric
• Mockito
• JUnit 4
Summary
• We do have day job.
• Make use of what already there.
• Proven libraries.
Q&A

More Related Content

PPTX
Nextcloud Android Development Process
PDF
Continuous Integration in PHP
PPTX
GitLab 8.6 - Release Webcast
ODP
Jenkins djangovillage
PPTX
Docs or it didn’t happen
PDF
componentDidCatch and Error Boundaries in React v16+
PDF
GitLab webcast - Release 8.4
PPTX
Up GitLab Presentation 2015
Nextcloud Android Development Process
Continuous Integration in PHP
GitLab 8.6 - Release Webcast
Jenkins djangovillage
Docs or it didn’t happen
componentDidCatch and Error Boundaries in React v16+
GitLab webcast - Release 8.4
Up GitLab Presentation 2015

What's hot (20)

PDF
Introducing GitLab
PPTX
Gerrit jenkins-big data-continuous-delivery
PPTX
Zero-Downtime Gerrit Code Review Upgrade
PDF
Golang taipei #45 10th birthday
PDF
Project52
PDF
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
PPTX
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
PPTX
Speed up Continuous Delivery with BigData Analytics
PDF
How to เสร็จเร็ว (Use Agile for your project with team)
PDF
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
PPT
OSGi Versioning & Testing
PPTX
A painless self-hosted Git service: Gitea
PPTX
Introduction to Gitea with Drone
PDF
Open Source Contributions - Alsey Coleman Miller
ODP
ESE 2010: Using Git in Eclipse
PDF
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
PDF
Releaseflow: a healthy build and deploy process
PPTX
How I become Go GDE
PPTX
Git kelvin
Introducing GitLab
Gerrit jenkins-big data-continuous-delivery
Zero-Downtime Gerrit Code Review Upgrade
Golang taipei #45 10th birthday
Project52
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
GitLab 8.5 Highlights and Step-by-step tutorial
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Speed up Continuous Delivery with BigData Analytics
How to เสร็จเร็ว (Use Agile for your project with team)
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
OSGi Versioning & Testing
A painless self-hosted Git service: Gitea
Introduction to Gitea with Drone
Open Source Contributions - Alsey Coleman Miller
ESE 2010: Using Git in Eclipse
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Releaseflow: a healthy build and deploy process
How I become Go GDE
Git kelvin
Ad

Similar to What we use to build Android apps at Silicon Straits (20)

PDF
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
PDF
Building the Pipeline of My Dreams
PDF
Python to go
PDF
Go - A Key Language in Enterprise Application Development?
PDF
Android talks #08 dagger2
PPTX
Devoxx - The Groovy Ecosystem
PDF
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
PPTX
Building Web Apps in Ratpack
PPTX
State of angular ecosystem
PDF
How to Contribute to Pinax
PPTX
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
KEY
Google App Engine Java, Groovy and Gaelyk
PPTX
JS digest, March 2017
PDF
What is Angular version 4?
PDF
When JHipster meets Microsoft-JHipster and Microsoft products
PDF
Application Deployment at UC Riverside
PPTX
PDF
Cocoapods in action
KEY
S2GX 2012 - Spring Projects Infrastructure
PDF
Spring Projects Infrastructure
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
Building the Pipeline of My Dreams
Python to go
Go - A Key Language in Enterprise Application Development?
Android talks #08 dagger2
Devoxx - The Groovy Ecosystem
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Building Web Apps in Ratpack
State of angular ecosystem
How to Contribute to Pinax
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Google App Engine Java, Groovy and Gaelyk
JS digest, March 2017
What is Angular version 4?
When JHipster meets Microsoft-JHipster and Microsoft products
Application Deployment at UC Riverside
Cocoapods in action
S2GX 2012 - Spring Projects Infrastructure
Spring Projects Infrastructure
Ad

More from Silicon Straits (20)

PDF
[THE PIRATES’ 3-year anniversary] Jonas' story
PPTX
Focus - Quang Trung
PPTX
“One man” development process model
PDF
Silicon Straits Origin
PDF
Kotlin Overview
PDF
Silicon Straits Internship Program Review - Season 1
PDF
[SIP 2015] Hardware Proposal: Ads view counter for AdsBox
PDF
[SIP 2015] Design Proposal: Design and animated prototype
PPTX
[SIP 2015] iOS Proposal: VIPER
PPTX
[SIP 2015] QA Intern: Test Automation
PPTX
[SIP 2015] Back-end Proposal: Chat System using Socket.io
PDF
[SIP 2015] Marketing Proposal: Making edit flow more informative and simpler
PDF
[Ebook] UI Document - Tú Bùi
PDF
[Sharing T3] Tình hình chiến sự Siêu anh hùng - Tú Bùi
PDF
[Sharing T1] How to take good photos - Anh Minh
PPTX
[Sharing T12] Tín dụng - Bí quyết tay trắng làm nên nợ nần - Minh Hòa
PDF
[Sharing T12] Một số câu chuyện về Âm lịch và Dương lịch - Xuân Quang
PDF
[2014 SSS Infographic] 2014, SSS có gì đặc biệt?
PDF
[Sharing T11] Hussar - The winged cavalry - Cường Đoàn
PDF
One Step Closer To UX - Vo Hoang Chu Kiet
[THE PIRATES’ 3-year anniversary] Jonas' story
Focus - Quang Trung
“One man” development process model
Silicon Straits Origin
Kotlin Overview
Silicon Straits Internship Program Review - Season 1
[SIP 2015] Hardware Proposal: Ads view counter for AdsBox
[SIP 2015] Design Proposal: Design and animated prototype
[SIP 2015] iOS Proposal: VIPER
[SIP 2015] QA Intern: Test Automation
[SIP 2015] Back-end Proposal: Chat System using Socket.io
[SIP 2015] Marketing Proposal: Making edit flow more informative and simpler
[Ebook] UI Document - Tú Bùi
[Sharing T3] Tình hình chiến sự Siêu anh hùng - Tú Bùi
[Sharing T1] How to take good photos - Anh Minh
[Sharing T12] Tín dụng - Bí quyết tay trắng làm nên nợ nần - Minh Hòa
[Sharing T12] Một số câu chuyện về Âm lịch và Dương lịch - Xuân Quang
[2014 SSS Infographic] 2014, SSS có gì đặc biệt?
[Sharing T11] Hussar - The winged cavalry - Cường Đoàn
One Step Closer To UX - Vo Hoang Chu Kiet

Recently uploaded (20)

PPTX
Role and Responsibilities of Bangladesh Coast Guard Base, Mongla Challenges
DOCX
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
PPTX
chapter8-180915055454bycuufucdghrwtrt.pptx
PPTX
Presentation for DGJV QMS (PQP)_12.03.2025.pptx
PPTX
Intro to ISO 9001 2015.pptx wareness raising
PDF
Presentation1 [Autosaved].pdf diagnosiss
PPTX
Emphasizing It's Not The End 08 06 2025.pptx
PPTX
The spiral of silence is a theory in communication and political science that...
PDF
Tunisia's Founding Father(s) Pitch-Deck 2022.pdf
PPTX
Non-Verbal-Communication .mh.pdf_110245_compressed.pptx
PPTX
Hydrogel Based delivery Cancer Treatment
PPTX
Impressionism_PostImpressionism_Presentation.pptx
PPTX
S. Anis Al Habsyi & Nada Shobah - Klasifikasi Hambatan Depresi.pptx
PPTX
Self management and self evaluation presentation
PPTX
Learning-Plan-5-Policies-and-Practices.pptx
PDF
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
PPTX
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
DOCX
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
PDF
oil_refinery_presentation_v1 sllfmfls.pdf
PPTX
worship songs, in any order, compilation
Role and Responsibilities of Bangladesh Coast Guard Base, Mongla Challenges
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
chapter8-180915055454bycuufucdghrwtrt.pptx
Presentation for DGJV QMS (PQP)_12.03.2025.pptx
Intro to ISO 9001 2015.pptx wareness raising
Presentation1 [Autosaved].pdf diagnosiss
Emphasizing It's Not The End 08 06 2025.pptx
The spiral of silence is a theory in communication and political science that...
Tunisia's Founding Father(s) Pitch-Deck 2022.pdf
Non-Verbal-Communication .mh.pdf_110245_compressed.pptx
Hydrogel Based delivery Cancer Treatment
Impressionism_PostImpressionism_Presentation.pptx
S. Anis Al Habsyi & Nada Shobah - Klasifikasi Hambatan Depresi.pptx
Self management and self evaluation presentation
Learning-Plan-5-Policies-and-Practices.pptx
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
oil_refinery_presentation_v1 sllfmfls.pdf
worship songs, in any order, compilation

What we use to build Android apps at Silicon Straits