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 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 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.


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)


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!


5 Top Mistakes All Freelancers Should Avoid

5 Top Mistakes All Freelancers Should Avoid

And So The Story Goes

Chances are, if you’ve been freelancing for a while you’ve made your fair share of mistakes. If you’re a new freelancer, maybe you haven’t made all the same mistakes yet, but you probably will before long.

The thing is, even with all the technology, tutorials and web sites out in the world today, there is one thing that people can’t avoid – human error. And not one of us likes to admit it (to ourselves or to anyone else), but we all make mistakes. Some mistakes are small and insignificant; others can end up costing us a lot.

Heck, I don’t even like admitting if I mispell a word or make a typo. Oh no… a button on my keybord must hve gotten stuck. 😉

But, like it or not – admit it or not – we are bound to make mistakes. It’s part of our nature, it’s part of our growing process… And there is no way to avoid every single mistake if you’re trying to succeed.

That said, I’m still going to try to warn you about some of the biggest mistakes most people make. Hopefully, after reading this article, you’ll be able to avoid some of these large and costly mistakes and fill up your “mistake quota” with the little ones… like typos.

1. Know Your Worth

There are too many – way too many – freelancers out there who don’t know or recognize their own worth. I’m not sure why this is, but it is a mistake that freelancers from all over the globe are making, not just the ones here in the United States.

It’s tempting to enter into freelance and offer discounted prices, cheaper rates, and big savings to potential clients. After all, what client doesn’t want to save a little money?

I can answer that… None of them.

Not one single client that you ever meet will want to save money. What they want is more bang for their buck. Clients want to know that if they pay you $3,000 to design their new web site, that this new web site is the best possible web site they could have received for $3,000. They want to know that the quality of their new web site, the service that they received from you during and after this web site was designed, and everything in between, was absolutely worth the cost.

Clients have no idea how much their projects are worth. Most don’t know how much work goes into completing their project. The only thing that a client knows is how much he or she can spend (in other words, his or her budget) to get that project completed.

In a perfect world, the client’s budget will match or surpass your worth – making everyone happy. But sadly, not everyone lives in a perfect world. And when you find that client whose budget does not meet your worth, it’s up to you to decide whether or not that client can afford your services.

So, when you start lowering your prices and offering your discounts, are you really giving your clients what they want? Are you actually giving them more bang for their buck? Or are you, instead, lowering your bang to meet their buck?

Determining Your Worth

So, how do you determine your worth?

I’m so glad you asked, because I’m going to help you do that.

First, think over your skills and what you’re able to offer your client.

  • Did you go to school to learn the skills that you’re offering?
  • Do you continue to learn and expand on your skills that you went to school for?
  • How good are you at communicating?
  • How much experience do you have?
  • Are your skills highly sought after? What is the level of competition you might be facing? Are there a lot of people with your skills, or are you one of a few?
  • How are you with meeting deadlines?
  • Do you have a successful track record, and can you prove this track record through recommendations, testimonials or a portfolio?

Of course, determining your worth won’t determine the exact amount that you should charge for your services. But it’s a good start. There are some other factors that you should consider when trying to determine how much you should charge for your services:

  • Your costs to get the project done, such as electric bills, buying any needed software or hardware, buying basic supplies such as paper or ink, Internet costs, phone bills, etc.
  • Your costs to get paid. Every online payment system, such as Paypal, charges you money when you receive payments. Even if you have clients writing you checks, your bank may charge you money to cash that check. Credit card companies charge money to process credit card transactions. Freelancing sites such as Elance or oDesk have their own fees associated with their payment systems.
  • General operating costs to continue your freelancing endeavor. Some freelancing sites charge you for your membership, others charge you before you can even bid on a project. Time spent marketing yourself or searching for potential projects can take hours away from your work day.

And, of course, what good is working if you’re only getting paid enough to continue working? There are living expenses that your income needs to be able to cover – otherwise you’re not going to get very far.

  • Food
  • Rent or mortgage payments
  • Electricity and other bills

Don’t Get Stuck Charging too Little

I’m going to pause here to tell you a little story. It’s the story of a budding freelance writer who was unable to determine her worth and it nearly cost her dearly.

So, as a freelance writer, she realized that there was a high level of competition. There are a lot of writers out and about, and the majority of them have excellent spelling and grammar skills, can type fast, and can meet and surpass deadlines without blinking. She had a degree in writing, took several writing courses every year to help keep up on changing grammar rules, put together a portfolio… she was prepared.

But this level of competition had her scared. She didn’t know how to make herself stand out from the crowd of freelance writers who could do any project she could do (and had the experience to prove it). Obviously, her particular skills were not difficult to find – they were present in abundance around the globe – and she didn’t yet have the extensive portfolio or testimonials to back up her track record.

So she went the way of discounts. Like I said, it can be very tempting. Other freelance writers in her area were charging close to $6 or $10 per page; competitors from overseas were charging closer to $1 to $2 per page, or even per article.

Finally, she got her first freelance writing job, and she was ecstatic. She thought for sure that this was going to be the start of a successful career in freelance writing. She made plans to have a website built (which is actually how I met her – she had approached me to develop a website to promote her freelance writing services), and she believed that this project would be the first of many that would fill her portfolio.

Then, after working nearly 60 hours in one week, it was time for her to get paid… and that’s when she learned she couldn’t even afford to take the money her client had paid her. 60 hours of work, and she couldn’t afford to collect her payment. Why? Because she had earned a total of $20 for that project, and the cost to withdraw her money from her chosen payment system was $30.

She actually had to pay $10 for the privilege of working.Headache

She made the mistake of forgetting what her value was, didn’t think about what her costs would be, and allowed the threat of competition to force her into lowering her worth. So much so that she only charged $0.65 per page for this article. She had a bill on the way from me, and several other bills she couldn’t pay, no other projects, and she was stuck.

Do you think I gave her a discount? If you guessed yes, you’d be wrong. But I did feel bad, and I do have compassion. So I made some arrangements to help her out, breaking down her payments into manageable amounts rather than all at once, and allowed her an extra two weeks to pay that first installment.

Hey, I said I had compassion – but I, too, have bills to pay.

Part of my work with her website included building an invoice system, so she could post invoices and have her clients log into the site to view them and make payments online. So, while doing this, I got to see what she did when I posted the invoice. I saw her mistake right away. “Don’t do that,” I told her. This eventually led to a few discussions regarding where to cut costs, how clients determine their budgets, and how contractors should determine their prices. And, well, the majority of the advice I gave her is what I’ve posted here for you to learn from.

Use Those Discounts Wisely

That’s not to say that discounted prices don’t have their place in business. If lowering prices didn’t work for some things, then there wouldn’t be such things as the Blue Light Special! Absolutely, discounts can make a difference – but you need to use them wisely.

  • Offering discounts in exchange for referrals, links, or advertising is a good way to get a head start with your own marketing plans
  • Offer discounted services in bundles if you can – such as free logo design with every site design, or discounted site hosting with every site developed.
  • Offer limited discounts for the beginning of your contracts, such as 20% off the first 20% of the project for new customers.

No One Needs to Know Your Finances Except You

And finally, no one else needs to know what you charge other people. If you decide to donate some of your time to designing a new logo for a charity auction and charge $10 for that design, then the next company looking for logo design doesn’t need to know that.

All potential clients need to know is whether or not your previous clients got more bang for their buck. That’s it. You can quote the number of hours it took you to finish a project or how large the project was. But the only numbers that a potential client should know is what you are going to charge him or her. Not what you charged some one else.

This is especially important if you made the mistake of charging too little in the past. A lot of freelancers get stuck if they’ve handed out too many discounts trying to make a name for themselves. Most clients feel cheated if you quote them $150 when they know you did the same thing – or at least what they think is the same thing – for someone else at $75.

And why would you want your client to feel cheated?

Just don’t do it. What a client pays you is between you and your client, maybe your accountant, and no one else.

2. Know When to Shut Up

That’s right, I said it right in the middle of this long article about mistakes freelancers should avoid. Learn when to shut up.

This can be critical for you, especially if you’re new and aspiring to be the next great you.

Turning Down Clients

Part of knowing when to keep quiet is deciphering the difference between promising a client that you can deliver the moon on a silver platter and actually knowing that you’ll be able to deliver that moon on a silver platter. Some freelancers get scared that if they tell a client they can’t do something, that client will huff and puff and rip their arm off before taking their business elsewhere.

Clients are not the monsters that so many freelancers are scared of! Clients are people – be they business people, charitable people, marketing people, or just bubbly cheerleader people. More importantly, they are usually people who are scared of freelancers. People scared of getting cheated. People scared of not getting their money’s worth. People who are scared of falling victim to liars.

And most people who don’t want to get cheated out of their money will appreciate you for being honest with them and explaining your limits.

And I can promise you, it’s amazing what a client will do if he or she trusts you. Time for another story.

So, as many of you know, I work with and favor Drupal. I heart Drupal. Nay… I Drool for Drupal. It’s the first CMS I learned on, and three years into working with Drupal I still had never seen the admin screen of a WordPress site. Then one day, a few years ago, a potential client approached me, having been referred by one of my previous clients. Except this client wanted a new site set up in WordPress, complete with custom theme and a list of about five different plugins he had already looked up, plus any other plugins I might know of.

Well, I didn’t know of any. I had never worked with WordPress. People kept telling me that WordPress was easier than Drupal and that if I could work with Drupal then I could take on WordPress with no problems. But I don’t work backwards so well. And the thought of trying scared me.

But, this was a friend of a client whom I had loved working with, and I really didn’t want to disappoint either one of them. So I thought about it, and I hemmed and I hawed while I pondered and sighed… and finally I sent an apologetic email explaining my limitations. I explained that learning my way around WordPress would take longer than working within the system with which I was already more comfortable. I explained my reservations regarding the project, and confessed that my schedule at the time wouldn’t allow for the extra “learning time” that the project would entail.

And, I’m not saying that every client would have reacted this way… but he hired me anyway, despite my limitation, and decided to let me work in Drupal instead of WordPress.

Yes, he had been referred to me, but it was my honesty that impressed him more than anything. He could have gotten referred to anyone else – I even offered to refer him to some freelancing colleagues who worked primarily with WordPress – but my honesty showed him why his friend had hired me before, and why his friend had referred him to me. And it was my honesty that got me that job.

It may not always work out that way. Sometimes your honesty will cost you a project or two. But, in exchange, you will have gained their trust – and nothing is better for a freelancer’s career than trust.

Giving Away Too Much Information

Hehe, Okay… So this one I can’t really blame on the keyboard. But boy, if I could figure out a way to do so I would!

One of the biggest mistakes that cost me several projects when I started freelancing was explaining everything before getting that contract.

Correct or Incorrect

You see, clients have no idea what freelancers do. If a client wants a web site built, he hires someone (or a team of someones) and all he knows, all he cares about, is that eventually when he loads up the Internet he can find his web site online and working just as he wanted. He doesn’t know how many hours it took to design the logo; he doesn’t care how many hours it took to write the PHP and CSS for the layout. He doesn’t care, really, if the site was tested across multiple browsers as long as it’s working on the browser he’s using.

Unless that client has ever worked as a web designer, web developer, content writer or graphic designer, then for all that client knows, the designer he hired had a magic wand.

So, knowing this, I thought that it would be easier for me to justify some of my higher-than-average rates if I explained exactly what I was doing. So I would draw up a detailed plan of exactly what I was going to use – what modules I was going to use, what resources I had found regarding their requests, what issues were being tracked that might affect them, on and on.

I said everything. And my keyboard never once tried to shut me up. So guess what happened.

That’s right, my potential client took all the information I had just spent an hour or so typing out, and ran with it – either finding someone cheaper, or implementing my plan himself.

Bad keyboard.

Well, the good news is that it only took me about 4 or 5 times to figure out that the problem was me. If you teach a client (for free) to build his own web site, you’ll be kicking yourself.

Don’t get me wrong. If you’re selling consulting, so clients can take your ideas and do the work themselves, that’s a great business too (and an excellent way to leverage your time). But don’t teach people to do your job unless you’re getting paid for the higher value of this service.

So, when you’re talking to a potential client, be honest and answer his or her questions – and then shut up. Do not go overboard with your explanations by telling him or her things he or she doesn’t need to know. They will either glaze over, or, if they’re unethical, take your information and run. Don’t give away all your secrets and plans until after he or she has gone from “potential client” to “actual client“.

3. Know When You’re Working

What I mean is, throughout the day you’ll find yourself doing various tasks that are related – or that you think are related – to your business. But chances are good that some of them just aren’t working for you. There’s no use wasting time and energy on an activity that is not going to work for you.

Whether it be social media marketing, online marketing, Tweeting, writing articles, putting together a blog, working on a web site, or planning the corporate retreat, people think that to get their name out there it has to be everywhere. Their marketing strategy is little more than throwing their name into every ad listing, directory, classifieds section and Facebook status that they can manage.

But guess what? These strategies may not work for you. The freelancer down the road from you might get some of her best clients through Facebook via their ad system – but that doesn’t mean you’ll ever find a single one on Facebook, no matter how many ads you write or buy.

Yes, it’s true that every marketing campaign takes time to work. And there is something to be said for having patience. But after a while, a marketing plan that isn’t working just becomes a waste. And the more time you spend on wasted activities that aren’t working for your business, the less time you have to invest in the activities that are working. You can either spend your time fighting your weaknesses, or using and improving your natural strengths.

To find out how much time you spend on each activity, try tracking your time over a typical day or week. Write down every task you do for your business (not for clients) and how much time you spend on each task. Then, go back and evalutate each task’s effects on your freelancing business. Did it attract more clients? Help you with the clients you already have? Broaden your skills? Is your business better for the time spent on this task or worse? Was there any change?

As you can imagine, evaluating these results may lead you to some surprising discoveries about how you’re spending your time. That 10 minutes you spend Tweeting every 3 to 4 hours might prove to be better than the $600 you spend posting an ad on Facebook. Or, it might just be that the 10 minutes you spend Tweeting every 3 to 4 hours added up to 4 hours of wasted time every week – time that could have been spent doing something more effective.

4. Know When to Stop

There’s a well known fairy tale that working freelance means you’ll get to choose your own hours. And, for the most part, this can be true. But it won’t always feel like you’re choosing your hours.

Especially if you’ve just started working freelance.

Your clients need you. Their websites might need to be set up, or maybe their websites have stopped working. Their online presence needs to be marketed, their articles need to be written and / or edited. Their logos need to be designed, their store needs to be set up. Their advertising needs to work.

And your business needs you. Your reputation needs to be built. Your name needs to be known, new clients need to be contacted. Your services need to be marketed or advertised and your promises need to be kept. You need to do research to gain more clients, learning to stay up-to-date with the latest software and techniques.

But most of all, you need to take a break.

It is far too easy to work yourself into exhaustion when you’re working freelance. It starts with a plan to “quickly finish this up” and before you know it, you’ve been working 10 hours and you haven’t eaten lunch, you haven’t stretched and your puppy still needs to go for a walk.Take a Break

Then, just as you think you’re done working for the day, you receive an email from one of the potential clients you had contacted last week, and he’s inquiring for more information. You think to yourself, “It’ll only take a few minutes to answer this, and then I can be done.”
But it doesn’t take just a few minutes. Some of their questions might require a more in-depth answer, or maybe even a little research. Or maybe you are just having a hard time thinking of the right way to explain something. Whatever the case, after working for 10 hours, writing an email that you thought would take you ten minutes ended up taking you close to another hour.

Finally, sleep. Unless you have a smartphone with email support. Because now, three hours after you’ve drifted off into blissful slumber, your smartphone starts to explode with new emails. You check, thinking – even praying – that it’s nothing important, but you find that your client’s site has gone down… and do you have a backup?

Even if you decide to put this request off until morning, this client’s problem will be top-of-mind until you finally get to the computer and start working on fixing the problem. That might be an hour or two of worry and anxiety before even starting to work on the problem.

For some of you, your work will never seem to end. Unforeseen problems will pop up. Answers to problems will strike while you’re eating breakfast and some of your best ideas will strike in the middle of the night.

Yes, it is far too easy to work yourself into mental and physical exhaustion when you’re freelancing.

And because of this, it’s crucial that you give yourself a break every once in a while.

  • Stand up and stretch or go for a short walk every 3 to 4 hours – even if it’s only to the mailbox.
  • Set up some boundaries regarding your schedule and stick with them. If your plan is to work a maximum of 8 hours a day, then once you hit that 8 hours, stop. Yes, there will be days when you can’t simply “stop” because of a looming headline or a problem that has come up… but these should be the exception, not part of your daily routine.
  • If you’re not in front of the computer working, then distract yourself. Don’t continue to stress over work as you eat your lunch or while you’re going for a walk. It’s not really a break if you’re still stressed! When you stop working, that means you should stop mentally focusing on work as well. Go to a friend’s birthday party, go on a date, learn how to knit, or go duck hunting if you have to. Find something, anything, to do that will provide an adequate distraction so that you can forget about work, even if it’s only for a few minutes.
  • Do not interrupt your “me time” for work. What I mean by “me time” is any time during the day that you spend taking care of your basic needs, such as meals, bathing, getting the kids to school or mowing your lawn. It’s so tempting – and easy – to glance at that phone or tablet when you hear the chime signaling that you’ve received a new email. In fact, it’s so easy that you may not even notice you’re doing it.
  • Take a day off – and keep it off. Again, it’s easy to say to yourself, “I’ll take Thursday off,” but then Thursday comes around and guess what happens? Someone needs you. So what do you do? You either work, or you stress about work (or stress so much that you’re as tired as if you had worked). So what good has taking Thursday off done? None. Pick a day, at least one day, every week that will be your day off and stick with it. No work. No stressing about work. Just you and a well-earned break.

Taking these breaks at regular times will also help you to stave off distractions while you’re working, allowing you to concentrate and work more efficiently and finish faster. If you find yourself perusing the Internet at times when you should be working or constantly being distracted with Facebook notifications, then chances are you aren’t giving yourself a good break.Cell Distraction Control

For me, it’s cooking or baking. If I find myself dying to peruse the Food Network site in search of new recipes to try, I know that I am not mentally prepared to work at that moment… and it’s usually because I haven’t taken a break, or even stretched my legs, in hours.

And finally…

5. Don’t Fall Victim to Slow Business

As easy as it is to get sucked in and work yourself into exhaustion when your business is booming, it’s just as easy to slip out of working efficiently when business is slow.

Things like marketing and availability become even more critical when business is slow. But as you well know, marketing costs money. So it’s easy to decide not to renew that advertising campaign or to let your web site’s hosting plan expire.

If you’re really worried about your bills, you may even find yourself looking for part time work somewhere. Working as a cashier at the local Wal-Mart is a little less embarrassing if it’s paying your bills, right? And besides, you’ll tell yourself that it’s temporary, just until business picks back up for your real job in freelance.

But the problem with this is that while you’re counting out change and wishing people a great day at Wal-Mart, you’re not answering your phone when a potential client is finally calling you back. And while you’re no longer buying ads, other freelancers are reaching new clients using the very ad space you aren’t using. Finishing that project in time to meet the deadline becomes harder after working 6 hours at a retail store stocking shelves. And as you miss deadlines, your reputation begins to slip, too.

This causes a slippery slope of failure. If business is slow, and you allow it to slow you down, then business will get slower. If that potential client can’t get ahold of you because you’re at another job, or you can’t respond to his email in a reasonable time, your reputation will suffer. And before you know it, your business will get slower – forcing you to take on more hours at your temporary job to pay the bills, and leaving it even harder to make yourself available when a potential client comes around.

I do understand that the cost of postage for your direct mail marketing campaign is not going to go down simply because you don’t have enough work. Your mortgage payment isn’t going to get any lower just because your income took a dip. There are some business-related costs that might need to be cut to help you make ends meet. But don’t allow cutting your costs to cut into your business. Double up on other lower-cost but time-intensive marketing endeavors to bring in clients, and keep plugging ahead.

Economic downturns always eventually end. And if you let a downturn wreck your availability and reputation, you may not be there to take advantage of the upturn.

In Conclusion

Be sure to also ask freelancing friends for advice. It’s absolutely okay to learn from others’ mistakes. After all, you don’t have time to make them all, right?

Have you learned something the hard way? If so, please share below in the comments. Help your fellow freelancers avoid them!

[Source: http://www.dwuser.com/education/content/5-top-mistakes-all-freelancers-should-avoid/]

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“.


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!

Why Apple discontinued iPhone 5

Seeing how this topic has gotten a reaction from the public, I would like to explain by giving reason as to why Apple chose to discontinue its 2012 flagship phone.
The perception, for a long time, even before we had a name for the iPhone 5c was that it would be a budget phone and therefore of lower quality than the iPhone 5s. The rumors kept building up and people started thinking that a budget iPhone was definitely going to happen. As rumors progressed further, we started seeing signs of the budget iPhone with the images of the plastic shell around the body being released. Of course, some would have been fake but still the perception was being made since a very long time.
In the past few days, leaked pictures showed the packaging, colour variants and more concrete information regarding the device and people were thinking that it would cost quite low. However, when the prices were released, a lot of people were shocked and are using the social media to vent their anger.
Well, one of the main reasons that Apple discontinued the iPhone 5 is that the “budget iPhone” as it was labelled will cost a whopping $549 (PKR 56,000) and $649 (PKR 66,000) for the 16gb and 32gb model respectively. This wedges the price right below that of the iPhone 5S and offers the same specifications as the iPhone 5. This would have caused problems when people would have decided to choose between the iPhone 5 and 5c since the release of the 5s would have meant that Apple would have to lower the price of the iPhone 5.
Now, why would anyone buy a phone which was labelled a cheap phone made with plastic over a phone of premium quality with the same specifications and price like the iPhone 5? This might have been the main reason for the discontinuing decision as it would have affected the sales of the iPhone 5c which Apple would never want since it is their latest phone.
The iPhone 4s is still hanging in there because Apple could have reduced its price even further leading to an increase in sales. A very calculated decision taken by the company which the consumers wouldn’t have minded.
But, would you really buy the iPhone 5c over the iPhone 5 or you’ll go for iPhone 5s? Let me know in the comments.

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.