Cool Open Source Libs
Nabil HACHICHA
GDG DevFest 2013 Algiers
Why Open Source?
● Better quality
○ Developed by many passionate developers
○ Innovation and enhancements over time

● Open standards & interoperability
● It’s hard to develop without it
Use case
● Develop & test a small app (Employees list)
Use case
Architecture

Request content from network
Use case
Architecture

ListView Adapter, based on a
simple POJO
Use case
Architecture

Fragment holding our ListView
Use case
Architecture

Parse HTML using Xpath
OkHttp
● Efficient Http client, based on java.net.
HttpURLConnection or Apache HttpClient
● Can also be used as as the transport layer
for Volley
OkHttp
● SPDY support, allows all requests to the
same host to share a socket.
● Transparent GZIP
● Silently recover from common connection
problems
● Recovers from problematic proxy servers
and failed SSL handshakes
● Connection pooling reduces request latency
(if SPDY isn’t available)
OkHttp
● SPDY support, allows all requests to the
same host to share a socket.
● Transparent GZIP
● Silently recover from common connection
problems
● Recovers from problematic proxy servers
and failed SSL handshakes
● Connection pooling reduces request latency
(if SPDY isn’t available)
OkHttp
● SPDY support, allows all requests to the
same host to share a socket.
● Transparent GZIP
● Silently recover from common connection
problems
● Recovers from problematic proxy servers
and failed SSL handshakes
● Connection pooling reduces request latency
(if SPDY isn’t available)
OkHttp
● SPDY support, allows all requests to the
same host to share a socket.
● Transparent GZIP
● Silently recover from common connection
problems
● Recovers from problematic proxy servers
and failed SSL handshakes
● Connection pooling reduces request latency
(if SPDY isn’t available)
OkHttp
● SPDY support, allows all requests to the
same host to share a socket.
● Transparent GZIP
● Silently recover from common connection
problems
● Recovers from problematic proxy servers
and failed SSL handshakes
● Connection pooling reduces request latency
(if SPDY isn’t available)
Picasso
● A powerful image downloading and caching
library for Android
Picasso
● Handling ImageView recycling and download
cancelation in an adapter
● Complex image transformations with minimal
memory use.
● Automatic memory and disk caching.
Code
Testsing
Robolectric
Mockito
FEST
Robolectric
● Run Android tests inside JVM
● Instruct Robolectric to configure Android
differently
○ use a non-standard manifest file
○ use French resources on a sideways high-res
display (qualifiers)
Mockito
● Mocking framework, with fluent API syntaxe
FEST
● Fixtures for Easy Software Testing
● Simplify software testing by providing a
fluent Assertions
● Just use assertThat
● FEST Android, extension of FEST
FEST
Example:
● Regular JUNIT
assertEquals(View.GONE,view.getVisibility())

● Regular FEST
assertThat(view.getVisibility()).isEqualTo
(View.GONE)

● FEST Android
assertThat(view).isGone()
Code
TDD
● objc-TimesSquare
○ calendar view for your apps

● PonyDebugger
○ Remote network and data debugging for your native
iOS app using Chrome Developer Tools

● SocketRocket
○ WebSocket client library

● objc-mocktail
○ stub out HTTP servers in your Objective-C app.

● KIF
○ Keep It Functional - An iOS Functional Testing
Framework
Thanks!
Q&A

Links http://square.github.io/

GDG Algiers DevFest 2013 Cool AndroidLibs

  • 1.
    Cool Open SourceLibs Nabil HACHICHA GDG DevFest 2013 Algiers
  • 2.
    Why Open Source? ●Better quality ○ Developed by many passionate developers ○ Innovation and enhancements over time ● Open standards & interoperability ● It’s hard to develop without it
  • 3.
    Use case ● Develop& test a small app (Employees list)
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    OkHttp ● Efficient Httpclient, based on java.net. HttpURLConnection or Apache HttpClient ● Can also be used as as the transport layer for Volley
  • 9.
    OkHttp ● SPDY support,allows all requests to the same host to share a socket. ● Transparent GZIP ● Silently recover from common connection problems ● Recovers from problematic proxy servers and failed SSL handshakes ● Connection pooling reduces request latency (if SPDY isn’t available)
  • 10.
    OkHttp ● SPDY support,allows all requests to the same host to share a socket. ● Transparent GZIP ● Silently recover from common connection problems ● Recovers from problematic proxy servers and failed SSL handshakes ● Connection pooling reduces request latency (if SPDY isn’t available)
  • 11.
    OkHttp ● SPDY support,allows all requests to the same host to share a socket. ● Transparent GZIP ● Silently recover from common connection problems ● Recovers from problematic proxy servers and failed SSL handshakes ● Connection pooling reduces request latency (if SPDY isn’t available)
  • 12.
    OkHttp ● SPDY support,allows all requests to the same host to share a socket. ● Transparent GZIP ● Silently recover from common connection problems ● Recovers from problematic proxy servers and failed SSL handshakes ● Connection pooling reduces request latency (if SPDY isn’t available)
  • 13.
    OkHttp ● SPDY support,allows all requests to the same host to share a socket. ● Transparent GZIP ● Silently recover from common connection problems ● Recovers from problematic proxy servers and failed SSL handshakes ● Connection pooling reduces request latency (if SPDY isn’t available)
  • 14.
    Picasso ● A powerfulimage downloading and caching library for Android
  • 15.
    Picasso ● Handling ImageViewrecycling and download cancelation in an adapter ● Complex image transformations with minimal memory use. ● Automatic memory and disk caching.
  • 16.
  • 17.
  • 18.
    Robolectric ● Run Androidtests inside JVM ● Instruct Robolectric to configure Android differently ○ use a non-standard manifest file ○ use French resources on a sideways high-res display (qualifiers)
  • 19.
    Mockito ● Mocking framework,with fluent API syntaxe
  • 20.
    FEST ● Fixtures forEasy Software Testing ● Simplify software testing by providing a fluent Assertions ● Just use assertThat ● FEST Android, extension of FEST
  • 21.
    FEST Example: ● Regular JUNIT assertEquals(View.GONE,view.getVisibility()) ●Regular FEST assertThat(view.getVisibility()).isEqualTo (View.GONE) ● FEST Android assertThat(view).isGone()
  • 22.
  • 23.
    TDD ● objc-TimesSquare ○ calendarview for your apps ● PonyDebugger ○ Remote network and data debugging for your native iOS app using Chrome Developer Tools ● SocketRocket ○ WebSocket client library ● objc-mocktail ○ stub out HTTP servers in your Objective-C app. ● KIF ○ Keep It Functional - An iOS Functional Testing Framework
  • 24.