Time flies when you are having fun and apparently today it’s my 3rd London anniversary 🙂
I was just reading few minutes ago the second chapter of my adventure in the United Kingdom and I’m really surprised to see how many things have changed during the last year.
Driven by my dream of getting better and better, I tried to hit most of the targets for this year.
The following months have been really intense and plenty of events that is better to summarise in just few points:
- written a comprehensive tutorial about Android Wear
- attended a course on Reactive Programming
- accomplished 3/4 of Cloud Computing specialisation also on Coursera
- moved from Hailo Ltd to Bloomberg LP at the end of August
Yesterday, I also started a Machine Learning course that will try to keep me busy till to the end of February.
I don’t know why… but I still feel that I haven’t done enough things during this 2015. I can justify this, saying that otherwise I wouldn’t know what to do next year… even if I have already got something in mind 😉
After a long period of silence on my blog, I hope that all my achievements have turned on you the desire of striving always for something more. Someone would say YOLO(you live only once) and I definitely agree with that: life is to short to let it fly away.
See you at the next time 🙂
It looks like that Today it’s my second year anniversary here in London 🙂
I want definitely to be a lot more concise than the past year but at the same time I want to write something that will remain as stone in the path of my life. Read the rest of this entry
In this tutorial we’ll talk some aspects that involves a mobile developer in many situations. In particular we’ll deepen concepts like threads (in particular AsyncTasks) and JSON parsing through Google GSON.
Before you start, take a look at:
- GET Twitter JSON Timeline
- JSONLint: it’s a web validator that allows you to view in a formatted way a JSON document
- Source Code
Now you are ready to perform this simple steps:
- Take TWITTER_URL that you find in the project in AsyncTaskActivity
- Past it into JSONLint board and press Validate
In this way you’ll view if your JSON is valid and how it’s structured.
After that you need to create (there’s mine 😛 ) an android project in which you add into AndroidManifest.xml the internet permission and an Activity that’ll be your ListActivity implementation. It’s important to that because our application uses an Internet connection to contact Twitter servers. After that you need to prepare your xml layouts and resources: you’ll find them into res folder.
Now there is the core of your application that it’s related to code implementation and in particular to the AsyncTaskActivity and HTTPUtil that you can read in the attached project.
- HTTPUtil: it’s a very simple utility class that performs a get request and returns the result as String
- AsyncTaskActivity: it’s the ListActivity implementation that I have provided to allow you to download some tweets from Twitter and show them on screen
Into your ListActivity implementation to avoid to stop your main UI Thread we’ll implement the data fetching into a background Thread. That’s not a good practise but a must that grants to user a good experience and to avoid “Your application has unexpectedly…. bla bla”. Hence, I have provide an implementation of AsyncTask that allows you to perform into the background the following operations:
- contact Twitter servers
- retrieve JSON response
- parse response into a List of Tweets
In fact all these operations are performed into doInBackground(….) method. All those updates those involves UI, in our case list refresh, are done in the UI thread and for that are done in onPostExecute(…). Pay attention that if you perform these actions out of your main Thread you get a fatal error and your app crashes relentlessly. If you try this tutorial on your mobile phone or into emulator you’ll obtain the screens that you can see in the SlideShow.
The solution that I have provided is very simple and there are other mechanism that connected to data persistance grants to user a better UE (user-experience).
I hope that this tutorial will be very helpful,