Saturday, July 12, 2014
Android and iOS Utility Apps - Part 2
Even if you have never used Twitter, you will have heard of it. Twitter is an app (and a website) that allows users to micro-blog (to send small pieces of text information, no longer than 140 characters, to anyone who wants to listen). After signing-up and selecting some people to “follow,” you can receive “tweets” from these people and you can see what they have to say.
To sign in to the Twitter client app, you have to enter in your username (or email address) and password. This information is sent to the web service that checks your credentials and either signs you into Twitter. As with many utility apps, Twitter has a backend server that deals with the interactions between the user with the app and the information stored on the Twitter databases. Sites, like Twitter, that want to allow you (as a developer) to use their web services, often provide Application Program Interfaces (APIs). The precise details of how to implement the API depend upon the specifics of that API. For example, Twitter has different APIs available in different computer programming languages. Twitter provides methods in it’s APIs for almost everything that you can do with Twitter, making it easy for developers to add Twitter functionality into mobile apps.
For an Android app, the Java API Twitter4J might be the best API choice. While in iOS5, Apple has provided a Twitter framework within the operating system. This makes accessing Twitter functionality from within apps on iOS very easy. Twitter also provides APIs for anyone who wants to connect to their web services.
However, if you want to create an app with your own dynamic content, you might have to create your own
web service to use with a custom API that you code by hand. This often involves web programming – using a different computer programming language than the one used to create your app. In order to create an app that provides the user with customized dynamic content from the internet, this backend programming is done to set-up your database. It will then be accessed through the web services on your server.
Now let’s take a look at a photo app.
Instagram is an app that allows users to share photos. You take a photo using the camera in your iOS or Android device, then you apply vaious filters to the image to create the illusion of a vintage photo. Lastly,
you can upload the photo to Instagram and optionally to Twitter, Facebook, Foursquare and Tumblr. Once you’ve knocked yourself out with all the sharing you’re doing, you can browse through other people’s photos and leave sarcastic comments.
Instagram’s core purpose is to take a photo and share it.
Let’s deal with the photography process first:
To use the camera feature of a phone, the app has to have the user’s permission to use the camera. There are methods in mobile operating systems that control the camera function. These are native features and vary between platforms and, in the case of Android, specific hardware setups. A camera instance is created programmatically, then the when a picture is taken, the photo is stored on the device.
After the photo is stored, Instagram gives the user options to change the appearance of the photo. This is done through preset filters. The programmers of Instagram created a number of preset filters that change the way the photo looks by altering different combinations of the technical specifications of the photo e.g. hue, lightness, saturation, chroma, etc. By changing these technical specifications of the graphic in specific areas of the photo, many different looks can be achieved.
After the photo is saved with the desired filter applied, the photo is uploaded to Instagram’s database, on their servers, using their API. Instagram also allows users to upload their photos to other social network sites using their respective APIs. The user is given the choice of where to upload their photos.
Giving users enough choices, without creating clutter or confusion, is one of the things that Instagram does brilliantly. First, the user is presented with a range of attractive filters to change the look of their photos; then they are given access to a selection of social networking sites where they can upload their photos. But don’t be fooled into thinking that more choice equals happier users. Often, eliminating choice is the bravest and most rewarding design decision – as well as the most profitable. Choice can be bewildering, so make sure that most of the minor decisions are already made for the user. An app with an array of options rarely sells. It’s too confusing for a mass audience. Top designers don’t offer much choice: They’ve already made all the right decisions on the user’s behalf, leaving them to enjoy a few fun tweaks.
Read back - Android and iOS Utility Apps - Part 1