star rating with close to 1 million reviews » Top Developer » Support for Android back to Froyo (2.2) (May 2010) » Earliest traceable version uploaded Feb 2011 » (V 1.0.16) by Mobelux » Bonus Listed on Amazon Kindle store
applications » Based on Intellij IDEA » Has Android specific plugins managed by Google » Eclipse support deprecated » Builds with Gradle (previously Ant)
» Command line & IDE use same build system » Eclipse had different systems for each » Dependency management from Maven » We have an internal proxy setup to Maven to ensure if Maven is down, we are not » Allows us to make flavors
to work in a way that maintains a separation of concerns similar to MVC / MVP, however it's not a perfect implementation of those systems. » Model - Business data (Post, Blog, Tag) » View - Anything extending from View » Partially facilitated through XML layouts » Controller / Presenter - Activities and Fragments
are children of these two classes » Holds functionality that is common throughout our app (Compose button, tracking) » Mostly used for Analytics these days
a post subclasses from these pieces. » PostListFragment handles most user interactions » Likes, Reblogs, etc. » PostAdapter responsible for holding and displaying data
are made through TaskScheduler » Ensures that requests always happen » Takes subclasses of ApiRequest which contain request parameters » TaskScheduler routes requests to the TumblrHttpService
by Html.fromHtml() » Very expensive » Content crawler looks through data that isn't currently on screen, and provides hooks for caching it. » If the app ever hiccups, it's probably this
Downloads images » Breaks Gifs » Renders images into views » It's similar in functionality to a popular open source library - Picasso (except it does GIFs)
frame as an individual .jpg and cache it » Cache a time-file for each each group » Loop through every Gif on screen, check its time current state, and advance if necessary.
database 2.Check for internet connection 3.Fetch data from API 4.Store in SQLite DB (via the Content Provider) 5.Let the system know that stored data is ready 6.Query for posts in database again
in database 2.Check for internet connection 3.Fetch data from API 4.Store in SQLite DB (via the Content Provider) 5.Let the system know that stored data is ready 6.Query for posts in database again
form into database 2.Check if network available 3.Tell system that there are outgoing posts available 4.Post uploading service kicks off 5.Notification that posting is complete
from form into database 2.Check if network available 3.Tell system that there are outgoing posts available 4.Post uploading service kicks off 5.Notification that posting is complete
to push payload to all registered devices 3.Tumblr App parses the payload and makes notes request to Refrog 4.Parses Refrog data and saves in DB 5.Posts a single or bundled notification for a blog
attempts to push payload to all registered devices. Google holds them until you come back. 3.Tumblr App parses the payload and makes notes request to Refrog 4.Parses Refrog data and saves in DB 5.Posts a single or bundled notification for a blog
be used to show notifications. Android can respond to them silently in the background. » Android push payload limit is 4096 bytes (between 1024-4096 UTF-8 chars) » iOS payload limit is 256 bytes (between 64-256 UTF-8 chars) (Changing to 2048 bytes in iOS 8)
from the server, we completely drop all previous data that is used in that place. For example: When you pull-to-refresh on the dashboard, all cached dashboard posts are removed from the posts table. The same behavior is also exhibited on blogs and search.
the first in-house version of the Android app (v3) » We were the first app to support in-line Gifs in the play store » We didn't support landscape until Nov 2013, 2.5 years after first launch » Featured in the Winter 2013 collection under "Most Beautiful Apps" on Google Play
Widget » Fast Reblog » Logged out experience (no account required!) » Support for 12 languages - Dutch, German, Italian, Japanese, Portuguese (Brazil & Portugal), Russian, Spanish, Turkish, French, English
Jumblr is a Java library that provides network connections, model objects, and data bindings to the tumblr API. It can be included in any Android project for a quick bootstrap into the Tumblr API. Cool tip: This is still maintained by John Crepezzi, a former Tumblrite