12 Helpful Tools for Every Step of Building a Mobile Application

12 Helpful Tools for Every Step of Building a Mobile Application

You cannot build a mobile app in isolation using just the native developer kit. Building an app requires that you have the right tools to deliver efficiently on every aspect of its life cycle.

Developing your first app can be a daunting experience, especially when you do not have enough knowledge of the tools available. Adopting these third-party tools will help you get to market quickly so that you can focus on getting the product/market fit for your app.

Prototyping

Prototyping your app gives you clarity on its every aspect, feature and the user flow. You need to have this bit sorted even before you approach a developer for building the application. The more clarity you have on your requirements, the more precise your timeline and pricing estimate for development.

1. Proto.io lets you create a full mobile-app experience without coding. What you get is a complete user flow and navigation of your app with interactive elements such as gestures and touch events to make it interactive.

2. InVision is another tool that allows you to create a fully interactive app prototype. The free tool also allows you to interact with your team members through a collaborative framework.

3. POP helps entrepreneurs, designers or even students to transform their pen and paper ideas into a prototype. If you started by sketching on a notepad, simply import it into this app by taking a picture.

Alpha/Beta Testing

The only way to know if something is working in your app is to test and measure it. You need to keep testing until you reach the desired result.

4. Amazon A/B Testing: Amazon has a free scalable tool for creating and running in-app experiments. Check out Air Patriots’ case study on how it improved its retention using the Amazon tool.

5. Heatmaps highlights the hottest areas on your mobile app, letting you track gestures, device orientation, user flows (navigation) and engagement.

6. Testdroid enables your development to be truly agile. It helps you test your application across different Android devices with different screen sizes, resolutions and different OS versions. Continuous Testing on real mobile devices saves up to 60% budget for mobile app development-testing cycle.

Mobile Backend

If your app requires users to sign up to use or any data is stored externally, then you need to build a backend. This means additional costs as well as signing up with a hosting provider. Early-stage mobile-app startups now have the option of using a third-party mobile-backend-as-a-service (MBaaS) provider to minimize those costs and develop quickly.

7. Parse was recently bought by Facebook. One of the most popular apps using Parse is Instagram. It gives you a great deal of flexibility along with a very easy to use iOS and Android developer kit that automatically takes care of synchronizing your app’s data with its cloud database.

8. Kinvey excels in the third-party integration provided through the platform. With Kinvey, you can pull rich video content from Brightcove’s App Cloud.

9. Xamarin has an impressive set of clients such as Rdio and MarketWatch using its backend. It’s helpful if you’re building native iOS or Android apps in C#.

Analytics

Analytics allow you to analyze user behavior in your app to get insights into what features are being used and which parts are driving conversions. They are also helpful in building an efficient marketing strategy.

10. Flurry (by Yahoo!) is a free tool that gives you insights into your users and app performance. You can track every menu tap, understand the user path, create funnels to optimize conversions and create user segmentations.

Marketing

Most often, the mistake that most entrepreneurs make is to think about marketing only after their product is live in the app store. You should start marketing the day you put your app into production.

11. Hello Bar is the simplest way to drive visitors to your highest-converting landing pages. It also helps you collect more emails and get more social shares.

12. FameBit connects you to YouTube influencers to create content that is shared a huge network. It’s fantastic for startups as videos start at $100.

Which tools do you recommend? Tell me in the comments section below.

(Original Arcticle: http://www.entrepreneur.com/article/237242)

Advertisements

Is Android Apps Development Better Than iPhone Development?

App Development

While there are more Android handsets than iPhone, over 30% of internet traffic from mobile devices comes from iPhone, compared with just under 26% from Android devices. The remaining 44% comes from RIM and Symbian devices and other iOS devices like the iPad.

When all iOS devices are considered, 73% of ad revenue generated by them comes from apps rather than mobile websites. The typical mobile user spends around 100 minutes per day using apps, and nearly 18 million apps are downloaded yearly. Today, around 20% of all searches are mobile, and of those, 40% are local searches.

Android apps development is big. Really big. According to research firm Gartner, 79% of all smartphones sold between April and June this year were running Android: 177.9m handsets compared to Apple’s 31.9m iPhone. Another research firm, IDC, estimates that 62.6% of tablets that shipped to retailers between April and June were running Android: 28.2m devices versus 14.6m iPads.

Meanwhile, Google says that more than 1.5m new Android devices are being activated every day, it’s nearing 1bn activated in total so far, and that by the end of this year that total will include more than 70m Android tablets.

Yet a lot of apps still come out for Apple’s iOS first or even exclusively. Right now, if you own an iOS device, you can play Plants vs. Zombies 2, Clash of Clans and Worms 3, but Android owners can’t. Why are android apps developments behind?

Instagram launched on Android 18 months after iOS. Nike’s Nike+ Fuel Band still hasn’t made the leap. Mailbox and Tweetbot are still no-shows, and while much-praised children’s app-maker Toca Boca has 18 apps available on iOS, only one of them is also on Android.

It’s one of the blogosphere’s favorite tech topics. Is the iPhone this, can android apps development do that? Every new nugget of competitive information is fodder for an avalanche of coverage. Oftentimes, a story will declare that android apps development is beating iOS development or that iOS is beating Android.

Really, though, it’s silly to obsess over any one data point. If what you’re after is a clear idea of how the world’s two dominant mobile operating systems are doing — rather than an excuse to make bold proclamations and/or cheer for your favorite — you want to consider lots of data points.

Is android apps development better than iPhone? Let us know what you think. The battle rages on!

[Source]

10 Tips for Efficient Android Apps Development

Android App Development Tips

The best recipe for becoming a complete flop in Google Play is to release an app that is battery and memory hungry with a slow interface. Most likely, these qualities will ensure negative reviews from users and result in a bad reputation, even if your app has great design and a unique idea. Every drawback in product efficiency, battery and memory consumption can really affect your app’s success. That’s why it is critical to develop well-optimized, smooth running apps that never make Android system guard against them. We will not speak about efficient coding, since it goes without saying that the code you write should stand any performance test. But even brilliant code takes time to run. In today’s post, we’ll talk about how to minimize this time and make Android apps that users love.

Efficient threading


 

Tip 1: How to off-load operations onto threads in background

Since by default all operations in an app run on the main thread (UI thread) in the foreground, the app responsiveness might be affected, which will imminently result in hangs, freezes and even system errors. To reinforce responsiveness, you should shift long-running tasks (e.g. network or database operations, complex calculations) from an app’s main thread to a separate background thread. The most effective way to accomplish this task is at a class level. You can use AsyncTask class or IntentService class to organize background work. Once you have implemented an IntentService, it starts when needed and handles requests (Intents) using a worker thread. When using IntentService, you should consider the following limitations:

  • This class does not put results to UI, so to show results to users use Activity.
  • Only one request is processed at a time.
  • Any request processing can not be interrupted.

Tip 2: How to avoid ANR and stay responsive

The same approach of off-loading long-running operations from the UI thread will save your users from the “Application Not Responding” (ANR) dialog. What you need to do is to create a background worker thread by extending AsyncTask and implementing doInBackground() method. Another option is to create a Thread or HandlerThread class of your own. Keep in mind that unless you specify “background” priority for the thread, it will slow down the app since the default thread priority is the same as of the UI thread.

Tip 3: How to initiate queries on separate threads

Displaying data is not immediate, although you can fasten it by using CursorLoader objects, which allows not to distract Activity from interacting with a user while query is processing in the background. Armed with this object your app would initiate a separate background thread for each ContentProvider query and return results to Activity from which the query was called only when the query is finished.

Tip 4: What else you can do

  • Use StrictMode to detect potentially lengthy operations you do in the UI thread.
  • Use special tools, i.g. Systrace, Traceview, to find bottlenecks in your app responsiveness.
  • Show progress to users with a progress bar.
  • Display splash screens if initial setup is time-consuming.

 

Device battery life optimization


We cannot blame users for angrily uninstalling applications that abuse battery life. The main threats to battery life are:

  • Regular wake-ups for updates
  • Data transfer via EDGE and 3G
  • Textual data parsing, regex without JIT

Tip 5: How to optimize networking issues

  • Make your app skip operations if there is no connection; update only if 3G or WiFi is connected and there is no roaming.
  • Choose compact data format, e.g. binary formats that combine text and binary data into one request.
  • Use efficient parser; consider choosing stream parsers over tree parsers.
  • For faster UX lessen round-trip times to server.
  • When possible use framework GZIP libs for text data to make the best use of CPU resources.

Tip 6: How to optimize apps working in foreground

  • When designing wakelocks, set the lowest level possible.
  • To avoid battery costs caused by potential bugs you might have missed, use specific timeouts.
  • Enable android:keepScreenOn.
  • In addition to GC (garbage collection) consider recycling Java objects manually, e.g.:
    • XmlPullParserFactory and BitmapFactory
    • Matcher.reset(newString) for regex
    • StringBuilder.setLength(0)
  • Mind synchronization issues, although it can be safe when driven by UI thread.
  • Recycling strategies are used heavily in ListView.
  • Use coarse network location not GPS when possible. Just compare 1mAh for GPS (25 sec. * 140mA) and 0.1mAh for network (2 seconds * 180mA).
  • Make sure to unregister as GPS location updates can continue even after onPause(). When all applications unregister, users can enable GPS in Settings without blowing the battery budget.
  • Since the calculation of a floating point requires lots of battery power, you might consider using microdegrees for bulk geo math and caching values when performing DPI tasks with DisplayMetrics.

Tip 7: How to optimize apps working in background

  • Since each process requires 2MB and might be restarted when foreground apps need memory, make sure the services are short-lived.
  • Keep memory usage low.
  • Design app to update every 30 minutes but only if device is already awake.
  • Services that pall or sleep are bad, that is why you should use AlarmManager or <receiver> manifest elements: stopSelf() when finished. When you start service using AlarmManager, apply the *_WAKEUP flags with caution. Let Android bin your application update together with the rest through setInexactRepeating(). When using <receiver>, enable/disable its components in manifest dynamically, especially when no-ops.

Tip 8: What else you can do

  • Check current states of battery and network before launching a full update; wait for better states for bulk transfers.
  • Provide users with battery usage options, e.g. update intervals and background behavior.

 

Implementing UI that leaves minimum memory footprints


 

Tip 9: How to identify layout performance problems

When creating UI sticking solely to basic features of layout managers, you risk to create memory abusing apps with annoying delays in the UI. The first step to implementation of a smooth, memory caring UI is to search your application for potential layout performance bottlenecks with Hierarchy Viewer tool included into Android SDK: <sdk>/tools/. Another great tool for discovering performance issues is Lint. It scans application sources for possible bugs along with view hierarchy optimizations.

Tip 10: How to fix them

If layout performance results reveal certain drawbacks, you might consider to flatten the layout by converting it from LinearLayout class to RelativeLayout class, lowing level hierarchy.

To perfection and beyond


Even though each tip mentioned above might seem like a rather small improvement, you might see unexpectedly efficient results if these tips become an essential part of your daily coding. Let Google Play see more brilliant apps that work smoothly, quickly, and consume less battery power, bringing the Android world one more step closer to perfection.


Information provided by Anna Orlova [Source]

“Tech Muffins & Musings Smoothie” is NOW Androidie

Hello everyone,
I hope you all are doing well!

So there’s this news…I’ve renamed my blog “Tech Muffins & Musings Smoothie” to “Androidie“.

Concept:

The reason is the former name didn’t sound technical. It sounded much like a chef’s blog who might write some technical stuff about the dishes he makes.
Now, Androidie is fun smart name which is

  • Short, so easy to remember
  • Depicts the blog is about Android
  • Smells like Technology

Also, I’ve updated the theme to a cool underwater light blue color. It’s a fun theme (you can see fishes all over and plants at the footer) yet it’s not to immature. Also, the font is a bit bigger and cleaner so you can read it easily on your desktops and tablets…and even smartphones (do let me know if you need an even simpler theme for smartphones).

Will I be totallay focussing Android?

No, but my main focus will be Android. Since I’ve got a bit time now and found some interesting things to share, my next few posts will be on Android. I’ll also be writing about Ruby on Rails, as well as sharing some technology news and my point of view about latest tech releases and gadgets.

So this is all. Just wanted to let all my followers know that the blog still exists but under a new name so they don’t get confused when they open it next time 🙂

Stay blessed!

2012 in review – Tech Muffins & Musings Smoothie

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 6,900 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 12 years to get that many views.

Click here to see the complete report.

Compressing and Uncompressing Data in Android/Java Using Zlib

Compressing and Uncompressing Data in Android/Java Using Zlib

This Could Be Better

The Zlib data compression library is built into Java, and allows you to compress and decompress data. So, uh… ’nuff said?

1. If you have not already done so, download and install the Java Development Kit. Details are given in a previous tutorial. Make a note of the directory to which the files “javac.exe” and “java.exe” are installed.

2. In any convenient location, create a new directory named “CompressionTest”.

3. In the newly created CompressionTest directory, create a new text file named “CompressionTest.java”, containing the following text.

import java.io.*; import java.util.*; import java.util.zip.*; public class CompressionTest { public static void main(String[] args) { Compressor compressor = new Compressor(); String stringToCompress = "This is a test!"; //String stringToCompress = "When in the course of human events, it becomes necessary for one people to dissolve the bands that bind them..."; System.out.println("stringToCompress is: '" + stringToCompress + "'"); byte[] bytesCompressed = compressor.compress(stringToCompress); System.out.println("bytesCompressed…

View original post 713 more words

11 Reasons Why Windows Phone 7 is Better Than Android

I, myself, am an Android developer and have been developing apps for it for around 3+ years. I’ve seen Android emerging from the 1.5 version to the latest 4.0.3 (or Ice cream Sandwich). I had the privilege to use the very first Android handset G1 and used many others including latest phone like Sensation etc. But, the first time I heard Windows Phone 7 announced, as a mobile developer I looked into it with the mind that Microsoft cannot do anything good especially with the smartphones. But I was astonished. The clean, awesomely visible and attractive UI was the first catch. I seriously liked the idea of rainbow-less screens and dig in depth the WP7 OS.

Regardless of the numbers, WP7 is one of my favorite mobile platforms, outshining Android in almost every aspect. Don’t believe me? Well, allow me to try and change your mind.

Windows-Phone-7-Series

Windows Phone 7 Series

Streamlined User Interface

Android’s are different depending on the SKU of the handset. In other words, the UI you’ll be dealing with when using, say, a Motorola handset, will be radically different than one from Samsung or HTC. The ambiguity can be disconcerting. With WP7, you know what kind of interface you’re going to be working with, regardless of the handset manufacturer. We’d imagine that an un-tweaked user interface would also make lives easier for developers, as well. We love some Android user interfaces, but loathe others. With WP7, at least you know what user interface to expect, regardless of the handset maker.

WP7 Has An Easier-To-Use Interface

Windows-Phone-7-UI

Windows Phone 7 UI

It really does. And look, we get it. An Android is a power user’s phone, and we know that if you’re really looking for power-use, you’ve got to be willing to learn some things. But we’re the geeky minority here, and you’ve got to keep in mind that most people are looking for a phone that makes it easiest to do their day-to-day tasks. Keeping that in mind, WP7’s “tile” system is simply easier to organize and find the things you need to throughout the day. It looks cooler too; way cooler, actually.

WP7 Has Apps That Aren’t Crap

Open-source is good, and it’s a compelling reason to support Android as a mobile platform, but let’s face it: You’ve got to sift through some real $#@t in the Android Marketplace to find apps that are worth downloading, much less buying. Most people fail to realize that the Windows Mobile SDK has been around for quite some time now, and it shows in the Marketplace, especially on the gaming side of the spectrum. Many of the games we played featured awesome 3D graphics and a level of polish simply not(yet)-to-be-found in the Android hemisphere. Microsoft has a far stricter criteria set than Google about which apps and games can populate their respective marketplace.

Microsoft LIVE Integration Is Cool

Windows-Phone-7-Xbox-Live

Windows Phone 7 Xbox Live

If you’re achievement junkies like we are (you know who you are), then a WP7 handset is a must-have. Have a game on Xbox or PC that you love playing? Pop over to the Windows app store; chances are there’s a mobile version of that same game, where you can continue earning points and unlocking achievements with your handset. You can also keep tabs on your buddies’ achievements, and tweak and enhance your Xbox Live avatar. Granted, this integration is still in an infancy stage, but we’d be willing to bet that we’ll be seeing deeper and more intuitive connections between gaming and phones in the near-future. Forward progress is good progress.

Microsoft Mobile Office Integration

Windows-Phone-7-Office

Windows Phone 7 Office

We were actually blown away by how deep this rabbit-hole goes. Microsoft Word Mobile Edition, by way of an example, is actually a very intuitive little program, allowing you remote access documents using SharePoint Server 2010, you can use the “find” tool to look for particular words or phrases, and you can even email documents directly from the program.

We’ve had the pleasure of testing some Android phones that can dock with workstations to function as a laptop; imagine how crazy it would be if Windows launched a similar product with a full-fledged Office Suite. That’d be one step closer to a true fusion between phones and computers, and we’re all for that.

People Hub

Windows-Phone-7-People-Hub

Windows Phone 7 People Hub

The most amazing thing in Windows Phone 7.5 (“Mango”) is the People Hub. No matter how many social networks you use and how many accounts do you have on them, WP7 will manage everything. All you have to do is to add your accounts by giving usernames and passwords and WP7 will fetch all your friends, followers, buddies and place them in your contacts. What if I have same person on Facebook, Twitter and Windows Live, etc? Well, it will link all accounts under one name. Yes, that’s correct! It will match the names and link all the accounts with same name as a single contact. You can also manually add or remove an account as per your needs.

What the benefit of it? Let me tell you, it’s enormous. WP7 kills the need of checking all your social applications again and again. You don’t have to keep an eye on Facebook, Twitter and LinkedIn. All you’ve to do it to open your people app and everything goes listed here. All the feeds, tweets, updates are here. Also, you’ve all your notifications gathered at a single place. Similarly, you can write a status once and publish it to all or may be some specific networks in once.

Microsoft Isn’t Constantly Getting Sued by Apple

Whether targeting HTC a year ago or Motorola last fall or even Samsung (which is remarkable seeing how they are a flat out key supplier of Apple’s hardware components) just a few days ago, Apple has been regularly suing the hell out of Android handset makers; mostly in regards to hardware and software patents. So why is Apple seemingly ignoring WP7 in the courts? Well, there could be numerous reasons: Optimistically, it could be because the software and hardware developments on WP7 are truly original and innovative, meaning Apple can’t accuse Microsoft of lifting their ideas. A more realistic reasoning? Apple doesn’t see WP7 as that big of a threat…yet.

Stability

This is speaking from personal experience with various handsets across both platforms, but to put it simply, WP7 has just been a more stable experience. Apps like Facebook and Netflix simply run the way they were meant to with far less of the hiccups and crashes found on the Android platform. This runs parallel with the overall theme behind WP7 mobile devices: Simplicity. Granted, WP7 had to forgo some of the more complex actions Androids are capable of (i.e. lack of tethering support, lack of ability to capture screenshots, no multi-tasking), but to us, that’s a worthy trade for a phone that will do what you want it do, every step of the way.

Zune is a Native Client, and it’s Not Pay-Per-Song

We like Zune as a service—you pay a monthly fee and can download as many songs as you want, as opposed to being pigeonholed into paying per song, like with Apple and Android. Also, we really enjoy the fact that Zune is a native client that comes fresh out-the-box with WP7—setting up music services on an Android involves downloading various apps (like Google Music, which then has to synch to your Google Wallet, which then has to synch to your Google Music Server, which then needs a Gauntlet from Moredore to unlock your songs, which then needs…well, you get the point) that is just sort of a hassle, and glitchy to boot. Again, simplicity reigns supreme.

Snappier Keyboard

All right, we’re getting down to the nitty-gritty, and this is a minor nit to pick, but for the most part (with the exception of the Android Sprint Galaxy, which actually featured a physical slide-out QWERTY keyboard), Windows Phone 7 had a snappier, and more importantly, a more consistent keyboard that was snappy and accurate, regardless of the device. And, though Droid offered a few keyboard-contenders with the Galaxy S2 and the Incredible, others were really bad, (ahem, Droid X2, cough).

No Ad-Ware!

That’s right, there is nary a pop up ad to be found, whether you’re in the Windows Marketplace, or playing a game. There is nothing more irritating when using an Android that having to manually close pop-up adds, many of which appear mid game. There are, indeed, advantages to more stringent app restrictions, and WP7 seems to have found a perfect balance.


Source: Maximum PC