Android developer's toolbox

2,125
-1

Published on

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,125
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
56
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide
  • you’re welcome to create pull requests
  • When releasing you don’t need the instrumentation testsWhen releasing you need to sign + zipalign + proguard + proguard ….
  • singleton
  • ViewById by name conventionRestService – idea is similar to retrofit
  • Android developer's toolbox

    1. 1. Alex Verdyan@aexxx
    2. 2.  Build tools  ant, maven Libraries  Roboguice, retrofit, ormlite, androidannotatation s, Testing  Fonemonkey, robolectric, robotium solo Stuff  acra, bugsense,
    3. 3. Pros  developed by Google (Android tools team)  Gets all the latest SDK improvements  Generated from Eclipse (ADT)Cons  No dependency management ( needs Ivy)  Not trivial to contribute (or debug)  Ant…
    4. 4.  founded by JAYWAY developed by the community Hosted on github – easy to contribute/debug Easy to setup Dependency management  Jars depend on other jars with versions Supports  package (apk/apklib), jar sign, zipalign, proguark, native, scala and more Runs tests  start emulator prior to running test
    5. 5.  Use Maven profiles to distinguish dev from release build
    6. 6.  Based on Google Guice Simplify your code make it more readable Remove boilerplate PLUS: You get the power of dependency injection (Guice)  Automatic Injection  Loose coupling  Testing with Mocks
    7. 7.  Re-usabale library by Square Inc. Interesting stuff  RestAdapter – abstraction over HTTP for Android ▪ Create a Java interface for your services  ShakeDetector  QueueFile (for storing a Q on Android filesystem)
    8. 8.  Does all the dirty HTTP work for you All calls are Async  can be used from UI thread w/ callback Built-in JSON support Uses JdkProxy, Guice and Gson
    9. 9.  Lightweight ORM Makes DB interaction more pleasant Code more readable Mature project Good documentation + large community Excellent support from the project owner Grey Watson http://256.com/gray/
    10. 10.  Provides Android specific annotations to make the code even more readable Can be integrated with roboguice Works by generating code during build process
    11. 11.  Relatively new (4-6 month)  Backed up by commercial firm (Gorilla Logic)  Record your tests  Adjust playback speed  Add conditions  Generate JUnit from the recording  Tests can run as plain JUnit (it communicates with the app inside emulator)* very elegant solution for test recording
    12. 12.  Selenium like UI + Functional testing framework Runs on Emulator/Device
    13. 13.  You can run tests from IDE No emulator Fast Enables TDD No mocking framework neededhttp://github.com/pivotal/robolectric
    14. 14.  Run tests from IDE Very fast No emulator Intercepts loading of Android classes – rewriting their bodies to return null/0/false Or forward calls to shadow classes
    15. 15.  Starting new Android project? Here’s Intellij project template with configured:  roboguice  robolectric  C2DM  Android source jars  Jackson (json parser)  …. https://github.com/pivotal/AndroidIntelliJStarter
    16. 16.  Library that submits crash reports (or exceptions) to your server / Google spreadsheet / email Add logcat and memory usage to your report Mature project Used by lots of apps (incl. Facebook app) OSS
    17. 17.  Bug tracking for mobile Realtime crash / bugs analytics Search Notify users when bug is fixed Supports Proguard Integrates with ACRA and JIRA
    18. 18.  Post crashes/bugs as tickets in JIRA Still in development Open source Cool features  Get user feedback  Reply to user via comment on JIRA issue  Notify user the crash/bug he reported is fixed  and more…
    19. 19. Any.DO
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×