Contact Us

By clicking “Let's Talk”, I agree to the ITH Privacy Policy

Working Effectively in Different Time Zones

There are a lot of benefits that come from working with a global team. The talent pool which is available to you and your company expands dramatically when you are willing to work with people from overseas. One of the most important challenges to consider is the time zone difference between each team member. After working with a global team for 15+ years, IT Hands (ITH) has developed several processes and ideologies for working effectively with a global team.

Working across different time zones has unique challenges. #GlobalTeams #Outsourcing #TimeZoneManagement Click To Tweet

When ITH started, it was clear that we didn’t want our team in India to stay up all night to solve the time zone challenge. We want our team members to be able to experience life on a normal schedule of sleep. Keeping developers up all night to work on projects in a U.S. time zone would lead to burn out and exhaustion. We had to find another way. We plan our meetings for clients on the East Coast in the morning (USA) and will instead meet in the evening (USA) for clients on the West Coast.

Different Time Zones

To keep projects running smoothly, project management becomes more important than normal. Everybody needs to be on the same page before the time difference is too much, and somebody needs to go to sleep (in either time zone). ITH uses a variety of project management systems and we are always willing to adopt the system our clients are using. We use Asana, Trello, and Jira just to name a few.

Finally, if a client ever needs to get a hold of a contact person, we do have a team in America who is able to pick up the phone to answer any urgent questions. We have policies in place that will allow our team to be available to fix any issues, even in the middle of the night. By thinking through how to best handle time zones, and developing systems, ITH has been able to overcome the global challenge.

Interested in working with a team that has mastered operating across different time zones? Reach out to for your next web or app development project.

PMS Review: Asana

If you’re reading this blog, you may be searching for a good project management system. Furthermore, you want one that helps you focus on project deliverables. One that can manage resources and meet deadlines. Asana does it all. Asana provides its users with an extensive set of features. These features help to plan, execute, and collaborate in a simple way.

This could be the #ProjectManagementTool of your dreams! #Asana Click To Tweet

With Asana, both individuals and teams can manage work. Users track progress, communicate, share related files, and much more, all in one place. Moreover, Asana provides enough flexibility and customization to organize your own work in the way best suited to you. As a result, Asana stands out as a hugely popular project management system.

Asana is a workflow management and collaboration tool. Within the system, specific individuals can be assigned different tasks, share related files, and add deadlines. Moreover, Asana helps the project stay on track without losing sight of the nitty-gritty details. In short, Asana can manage almost any project by breaking down a specific project into small workable chunks.

Generally, you can assign every task and subtask to a specific person and set the due date. This helps to define who is responsible for each task, whether the project is on track or needs additional help or communication to keep it rolling.

Asana offers a dependable platform for the following:

  • Create and assign tasks
  • Set due dates
  • Communicate with a team through messages
  • Track progress

Building Blocks of Asana:



Different projects, teams, and tasks are located in the worskpace. Users can add others to the Asana board to collaborate. Also, you can create separate workspaces for various projects and teams.


Projects are the main organizational unit in Asana. You can store and manage multiple tasks within a project. Projects help to track the overall progress of a large goal and routine processes.


Tasks are the to-dos assigned to specific individuals. You can set due dates and assign followers to it. If work needs to be broken down into more detail, users can create subtasks inside a task. Also, you have the ability to add a due date and share the document after a task is created. Additionally, when changes are made to a task, you can be notified through a subscription to that specific task.

Look and Feel

Asana offers a thoughtful and colorful UI that is quite intuitive and interesting. Choose whether to view in a list format, board format, or calendar view.

List View:

Asana - List View

Board View:

Asana - Board View

Calendar View:

Asana - Calendar View


  • User-friendly interface
  • Email integration
  • Available on web, android, and iOS
  • Provides a series of project templates


  • Lacks time tracking features
  • The free version is only available for 15 users


We have to juggle numerous tasks on a daily basis and each task contains a slew of details. It is extremely important to choose the right project management system that can streamline the project management process and contributes to the project’s success. Asana is one such project management tool.

Asana functions as a digital office. First, users assign tasks and communicate back and forth on different tasks with ease. Second, they can track progress and deadlines without missing important details. In conclusion, Asana is a tool that lets you multitask, makes project handling easier, faster, and better.

Like our blog? Learn more about the ITH process or contact us about your next web or app development project at

Project Management Tool Review: JIRA

When you have a big and complex project to build, it’s very important to choose an appropriate system to track its progress. There are several tools (free and for a price) available in the market, and Jira is a powerful project management tool used to track a project.

Have a large, complex project? Jira might be the #ProjectManagementTool for you. Click To Tweet

Overview of Jira

Jira Software is a powerful project management tool for issue tracking, bug tracking, and project management purposes. It has great support for agile. It also offers several plugins to extend its features.

FACT: The name “Jira” is derived from the Japanese word “Gojira” which means “Godzilla.”

According to Atlassian, the corporation that created Jira, the application is used by over 65K+ companies around the world to manage projects and track bugs. Some large organizations have used Jira, like NASA, Twitter, Audi, Domino’s, SAMSUNG, Walmart, Toyota, eBay, Coca Cola, the United States Department of Defense, and the Apache Software Foundation. Software developers, project managers, and SCRUM masters use Jira for tracking bugs, managing projects, products, processes, tasks, and Agile software development.

There are three options to host Jira Software. You can choose from the Cloud, a server, or a data center. Cloud is generally the best, quickest, and easiest option. You can also integrate Jira with many third-party apps. Some of them are Confluence, Bitbucket, Slack, and GitHub.

If you plan to use Jira, there are some terms you will need to know as you begin.

The first term is Issues. A Jira ‘issue’ refers to a single work item of any type or size that is tracked from creation to completion. The commonly used terms for issues are requests, tickets, or tasks.

Next is Projects. A project is, quite simply, a collection of issues. Issues grouped into projects can be configured in a variety of ways, ranging from visibility restrictions to available workflows.

Another term is Workflows. When you see the term Workflows, it represents the sequential path an issue takes from creation to completion. A basic workflow might look something like this:

Jira task flow

Last, but not least, is Agile. Agile is not a Jira software-specific term. Jira Software has major feature sets designed particularly for agile, including scrum or kanban. Now consider the costs and benefits of using Jira.

Pros and Cons


  1. This application is a great way to sync project requirements, create a roadmap, implement scrum, view data reporting, and much more in one place.
  2. Jira also provides a single view of all user stories.
  3. It generates much-needed reports so the team can analyze various sprints, like burndown charts, sprint velocity, etc. Plus, this application is very customizable.
  4. Also, Jira helps you to plan, start, and execute any complex project. In addition to all this, anyone can use Jira; a scrum master, a programmer, a project manager, an HR person, or a business person.

But let’s also consider the costs for this application.


  1. Unfortunately, you will have to pay to use Jira software.
  2. Although Jira has a mobile app, it is not the best mobile app. This is because the UI in the mobile app is very confusing. As a result, most people who use Jira, stick with the web version.
  3. Another thing to consider is that the integration and migration from other application lifecycle management (ALM) systems are very complex and very time-consuming. This means, all the artifacts will need to be migrated manually into JIRA.
  4. Also, Jira’s recently introduced UI is not very user friendly and is a bit confusing.

To conclude, would I recommend Jira?
Yes, if your project is large and complex and you want to use agile methodologies. Also, if you can pay to use it, then I would recommend Jira.

Do I use Jira?
Yes, I am using Jira in one of my large projects. It’s a useful project management tool with some issues that can be overlooked to keep track of a project on multiple levels.

At ITH we prize high-quality work and authentic transparency in our work with clients. If you’re looking for a trustworthy outsourcing partner contact us right now at

5 iOS App Development Tools

Sooner or later every organization wants a customized app to help grow their business. Any aspirant iOS developer will face many challenges during the development of an application. That is why I want to share the five iOS app development tools that will help you or your team develop an iOS app efficiently.

Are you just starting out in iOS mobile app development? Do you have the 5 essential tools? Read our blog to find out. Click To Tweet

First, your app will require a basic infrastructure. Obviously, many developers understand this. But have you heard of the tools that will make this process much more simple? Read on to learn more.

1. Basic Infrastructure

a. macOS

macOS is a series of graphical operating systems developed and marketed by Apple Inc. You will need this for development since Xcode can only work on macOS.

b. Xcode

Xcode is a fast and consistently smooth iOS app development tool. It is Apple’s IDE (Integrated Development Environment) for both Mac and iOS apps. Xcode is the graphical interface you’ll use to write iOS apps. Xcode includes the iOS SDK, tools, compilers, and frameworks you need to design, develop, write code, and debug an app for iOS. But for native mobile app development on iOS, Apple suggests using the modern Swift programming language.

c. Simulator

Simulator allows you to rapidly prototype and test builds of your app during the development process. Although it is installed as part of the Xcode tools, simulator runs on your Mac and behaves like a standard Mac app. During use it can simulate an iPhone, iPad, Apple Watch, or Apple TV environment.

d. iOS Software Development Kit (SDK)

Some iOS SDK essentials are the Cocoa Touch frameworks that include the UIKit, GameKit, PushKit, Foundation Kit, and MapKit. Use these iOS app development tools to build software much easier.

Now you have the tools that make code easier. How about when your team goes to build the framework? What tools give them an easy environment to set the stage for a well-developed app?

2. Standard practices for a project using iOS app development tools

a. Set Up the iOS Environments

It’s best to have separate environments for your iOS apps, especially if they are communicating with any servers. For instance, consider an iOS app and three different available web backend environments: development, staging, and production.

b. CoreData for local DB operation (if needed)

Core Data is one of the most popular frameworks provided by Apple for iOS and macOS apps. Core data is used to manage the model layer object in your application. You can treat Core Data as a framework to save, track, modify, and filter the data within iOS apps; however, Core Data is not a Database. Core Data uses SQLite as its persistent store but the framework itself is not the database. Core Data does much more than databases, like managing the object graphs, tracking the changes in the data and many more things.

c. Version Controlling

Version control is a system that records changes to a file or set of files over time. This allows you to recall specific versions later.

d. Git

Git is the most recommended system to manage the versions. It is a free and open-source, distributed version control system. This system is designed to handle everything from small to very large projects with speed and efficiency.

By the time you have developed a framework, you have hopefully settled on an optimal design for the app. So what is it going to be? There are various architectural structures that you can choose from, as you will find out in the next section.

3. Adopt an optimal architecture design pattern

It is very important to adopt an efficient architecture well suited for the project you are supposed to work on. Adopting an architecture helps in the future enhancements and maintenance of the project, if needed. Here are a few architectures to use while developing:

a. MVC

It stands for Model, View and Controller. MVC separates applications into three components – Model, View and Controller.

i. Model

Model represents the shape of the data and business logic. It maintains the data of the application. Model objects retrieve and store model state in a database.

ii. View

This is a user interface. It displays data to the user, using the model, and also enables them to modify the data.

iii. Controller

Controller handles the user request. Typically, users interact with view, which in-turn raises any URL request. This request will be handled by a controller. The controller renders the appropriate view with the model data as a response.

The following figure illustrates the interaction between the Model, View and Controller.


b. MVP

MVP stands for the Model, View and Presenter. Model and View work the same as in MVC. Only the Presenter plays the role as a UIKit independent mediator.  

The following figure illustrates the interaction between the Model, View and Presenter.



The MVVM is the newest version of MV(X). We hope this new version took into account problems MV(X) faced previously. In theory, the “Model-View-View-Model” looks very good. The View and the Model are already familiar to us, but also the Mediator, represented as the View Model.

The following figure illustrates the MVVM.



This is our last candidate. VIPER doesn’t come from the MV(X) category. It separates responsibilities in five layers.

i. View

This is a user interface. It displays data to the user using Model and also allows them to modify the data.

ii. Interactor

This contains business logic related to the data (Entities) or networking. For example, creating new instances of entities or fetching them from the server. For those purposes, you’ll use some Services and Managers. These are not considered a part of VIPER module, but rather an external dependency.

iii. Presenter

It contains the UI related (but UIKit independent) business logic, and calls on the Interactor for data.

iv. Entities

This is the responsibility of the Interactor. It contains your plain data objects, not the data access layer.

v. Router

The Router is responsible for the segues between the modules.

The following figure illustrates the VIPER.


Finally, you’ve settled on a pattern for the app to follow. Now if you haven’t ever met the following library tools, let me introduce you. There is a reason these are popular among iOS developers!

4. Make use of libraries and frameworks

Because iOS is so popular there are a significant number of libraries and frameworks. They can be used to solve a number of issues. They can implement custom UI animations or work with device hardware. Consequently, these third-party iOS app development tools can significantly reduce the amount of effort and cost of building the same features from scratch.

i. CocoaPods

1. CocoaPods comes as a Ruby library and need to be installed using RubyGem. It is built with Ruby and is able to be installed with the default Ruby available on OS X.

ii. Carthage

1. Carthage is another simple dependency manager for the Cocoa application. It downloads and builds the dependencies, but will not change the project file. Xcode project builds the setting like CocoaPods. You have to manually drag a framework’s binaries to Linked Frameworks and Libraries.

2. You can install Carthage using HomeBrew.

iii. Swift Package Manager

1. The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system and can automate the process of downloading, compiling, and linking dependencies.

a. Third Party Libraries

The most important benefit of using third party libraries is that it saves you time. You do not need to develop the functionality that the library provides. Instead, you can focus on the core business logic of your app: the features that really matter. Typically, you will spend a fraction of the time it would take to develop and test an app’s functionality from scratch.

Here are few third party libraries which are well known and make a developer’s life easier:

i. AFNetworking

It is an Objective-C networking library for iOS, macOS, and tvOS. This robust library has been around for many years. From basic networking to advanced features such as Network Reachability and SSL Pinning. AFNetworking has it all.

ii. SDWebImage

SDWebImage is an asynchronous image downloader with caching. It has handy UIKit categories to do things such as set a UIImageView image to a URL. Although networking has become a little bit easier in Cocoa over the years, some basic tasks have not improved. For example, setting an image view to an image using a URL is still difficult.

iii. Alamofire

Alamofire is AFNetworking’s successor, but is written in Swift. You might be wondering why there are two different networking libraries in the upper echelon of this list. I assume it’s due to the fact that networking libraries are just extremely useful for iOS app development. The two libraries share a similar feature set. The main difference is the language in which they are written.

iv. SwiftyJson

Your life will be so much easier when it comes to handling JSON in Swift. Combining JSON with Swift can be tricky. The type casting issues make it difficult to deserialize model objects and it may require a bunch of “nested if” statements. SwiftyJSON makes all of this quite simple to do. That’s probably why it’s the second-most popular Swift library.

v. PromiseKit

PromiseKit is a popular third-party library for Swift and Objective-C programming language. Many developers use this library to simplify the asynchronous tasks they have in their apps. Promises allows you to control the whole asynchronous background process with this powerful closure syntax for chaining multiple async functions.

Now that your app is complete, you will need to distribute it. Overall does it matter how the app is presented to the world? Maybe – if you want a small selection of people to review it first.  In that case find out what options are available.

5. Choose the distribution model for your iOS app

As soon as your app is ready to be shipped, it’s important to decide how you want to distribute it. Currently, Apple offers three models. The most widely used option is to upload the app directly to the App Store. This way it will become available to every iOS user.

Additionally, you can set some parameters, such as target country, supported device, or iOS versions. If you want to beta-test your app before launching it globally, you can use the TestFlight service provided by Apple. It allows you to invite up to 100 users to test the application privately.

For enterprise-level apps or internal business tools, you can use the iOS Developer Enterprise Program or Volume Purchasing Program. Although a costly alternative to the previous two methods, this approach offers complete privacy. It allows you to make the application available only for your employees and contractors.


In conclusion, these iOS app development tools will simplify any iOS development you or your team may do in the future. First, remember to establish the basic infrastructure. Then, follow the standard practices of creating several versions. After that, decide which architecture will be most efficient for the project. Also take advantage of third-party tools and libraries. Finally, choose how you will distribute the app. Overall, we wish you all the best in using these iOS app development tools. If you are short staffed or need an iOS consultant for the next project, email us now at

Business Lessons from Growing up in Ecuador

Growing up in Ecuador was an incredible experience that I would not trade for anything. It is a beautiful country with an amazingly rich culture. In Ecuador, I learned how much I enjoyed business by haggling in the marketplace, but I also saw the effects of deep poverty among my friends. I hoped someday to be able to use business as a way to empower others. I learned a few business lessons while growing up in Ecuador that have proved helpful to my current work at IT Hands, an international web development company.

#CrossCultural Business Lessons: “Without a sustainable business your social impact cannot survive.” Read more in Greg’s blog. Click To Tweet


1. Learn About Cross-Cultural Differences When Doing International Business

Many fellow gringos would visit our family in Ecuador and were often frustrated by their negotiating experiences when they bought from the local markets. Simple things, such as the weight of “yes” and “no,” would drive people crazy! To an American “yes” means “yes” and “no” means “no.” To an Ecuadorian, “yes” means “hmmm…” and “no” is practically a bad word. For an Ecuadorian, the American “yes” is based on how many times they say “yes” and how enthusiastically they say “yes.” Understanding this is crucial to reaching an agreement. India is very similar to Ecuador in this sense. A good book to read when working with Indian teams is “Speaking of India”.

2. Take an Expert with You if You are Walking into Unfamiliar Territory

We recommended that most gringos go to the market with someone familiar with the culture. This would help with language differences and getting the local price instead of the gringo price. This advice is true in the tech world as well. Technical conversations can sound like a foreign language to many of us. If you aren’t technical and need to make a technical decision, I would highly recommend bringing someone to calls who understands the lingo and can make sure that you are being offered the best technical solution for your problem. If you don’t know of anyone in your network who can help, then reach out to He has helped many businesses successfully get through this exact dilemma.

3. Social Impact should not be your Financial Undoing

I worked at this awesome cafe in Loja that not only served great coffee and food, but also taught English for free and offered free counseling. Helping young adults advance their careers through learning another language and helping those struggling with their mental health were important for the community. Unfortunately, this became so much the focus of the cafe that financials became secondary. Inevitably, the cafe went out of business. Now none of those services can be offered. The most sustainable way to help others is through a profitable organization.

4. Create a Sliding Scale for the People You want to Help the Most

My family ran an ophthalmology clinic in the Andes to help the rural poor with their vision. In order to make the clinic sustainable, we made it a for-profit business, but some of the people we set up the eye clinic to help were not able to afford it. In order to help those for whom we created the eye clinic, we created a sliding scale. Because we lived in a small rural community we knew most people’s socio-economic status from their last name. If they did not have the money to pay for their appointment we would set up a system where they could pay with eggs or a delicious chimichurri sauce. Just make sure your bottom line stays healthy so that you can continue to help others.

5. Free is not Valued

At first we offered eye glasses for free to these poorer families, but they kept coming back with broken glasses. As soon as we asked people to pay for them (even if it was with a payment of just a few eggs) the broken glasses problem stopped. People value what they pay for.


In summary, the business lessons I learned growing up revolved around understanding the culture. Get to know the people and culture that you are working with and if you aren’t an expert bring one into the conversation. If you are using your business for a greater purpose than a good bottom line, don’t forget about the business lessons regarding the bottom line. Without a sustainable business, your social impact cannot survive. If you have not been to Ecuador I highly recommend going! It is a beautiful place with the Amazon Rainforest, Andes Mountains, and Pacific Ocean all in a country the size of Colorado.

Outsourcing Models: 2 Software Development Options

Are you looking into outsourcing? Not to overwhelm you, but there are far more IT outsourcing models out there than you ever realized. Within IT Hands, we try to keep this could-be-complex scenario as simple as possible. We offer support to companies for full projects or long-term help in a specific skill set. In this blog, we refer to these two outsourcing engagement models as project-focused vs people-focused.

Outsourcing does not have to be complicated. Take a look at our company’s two simple #ITOutsourcingModels Click To Tweet

Project-Focused or People-Focused?

Let me explain our IT outsourcing models a bit more in detail. With the project-focused model, the client works closely with the Project Coordinator, with less direct communication or control over the team, whereas the people-focused model allows the client to be the project manager and work beside the extra staff available to their team. These additional team members usually need to be able to work a certain number of hours. But if you think of them as an extension of your team, you can assign them on various projects within your business.

Project Model

Type of Project

How do you know which IT outsourcing model will be best for your project? We provide a table below to give you an idea when you may need to outsource a full project or just hire extra staff for a certain time period. Take a look and decide: Do you require full-project support or just a few more hands on deck?

Type of Project

Questions to Ask Yourself

Are you building an MVP?

Do you have an idea for an app, but are unsure of whether this “idea” will be successful? Do you want someone else to create your app or web application? Are you wanting to get your product on the market quickly to get user feedback? Let the team focus on the development and coding details and you focus on the user and their feedback.

Do you have a new product with no users?

You can outsource the whole project and allow the team to develop the product, while you focus on feedback and marketing.

Do you have an idea, but no team?

Maybe you need someone else to handle the development, while you focus on creating your product.

Do you already have a successful product?

Perhaps you already have a mobile app, that has thousands of users but you need people to help with additional development to manage the volume or keep it up to date.

Are you wanting control of the project management?

Typically, when you are outsourcing the project, you’re outsourcing the management too. If the outsourcing model you need includes a team that can manage the project fully, then choose to outsource the entire project. If you need additional help, but want to manage the project, then you can outsource specific skills.

Do you need more team members?

In this case, you already have a team with certain skill sets, but need additional support. Perhaps your team specializes in design, but would benefit from technical support.

Do you have a complex product?

If the code infrastructure of your product is complex, but you already have the product built, then outsource the skills for more support. If you have a partially-constructed project then our team can rectify the old code and create what you had in mind from the beginning.

Are you wanting additional support at a fixed monthly cost?

If the cost of a full project is not in your budget, take on a few outsourced employees. You won’t be paying for their insurance and benefits – the employer takes care of that – but you will have a planned-out payment each month.

Do you only want to pay for time and materials?

Rather than paying a salary for extra support, it may be more cost-effective for you to pay for time and materials on a project.

Decide on Your Needs

The decision can be a tough one: whether to outsource all your development or hire a part-time developer. We have met with many clients that needed to discuss details further before making the decision about which outsourcing model they choose. It can be hard to know what type of support you may need until you lay it all out. We understand that.

Contact us at to discuss what kind of support you may need.

5 Essential App Development Tools for Android

You need to use these 5 dev tools in your next Android project. Read our latest blog. #AppDevTool Click To Tweet

We live in the Mobile App Era. There are a host of app development tools available for developers. Android and iOS are the two most prominent operating systems and both have their own tools for developing apps. So if you are planning to have a mobile app for your business, creative idea or service, you should be aware of the tools that are needed to develop that mobile app. In this blog, we will talk about Android tools.

How are Android Apps developed?

Every software development needs an IDE (Integrated Development Environment) for ease in using app development tools. Android is no exception. We have the Android Studio, which is a full, sophisticated IDE for the Android app development. Wondering what’s in the Android Studio IDE? Read on.

Here are some command-line tools for Android app development.

1. Android SDK tools

Android Software Development Kit (SDK) is a toolset that helps developers to create apps for Android OS. In the SDK you will find libraries, a debugger, and an emulator that help you to start developing apps.

2. Platform tools

New versions of the Android OS are frequently released, so platform tools provide support to the new features of Android and have compatibility with the older versions.

3. Android Emulator

With the help of Emulator you can test your apps without using the real devices.

Now you have an idea of what’s in the Android Studio. So then, let’s move ahead to know what else is needed in app development.

  • 1. Android Libraries

Because Android is open source and has great community support, we can easily find the small pieces of code that we can use. This can be done by adding the libraries into our application. Most of the libraries are found in the GitHub platform. Here are some of the libraries with a short description.

a. Retrofit

This library is used to get the data from the server via Web services and use it in the app. For example, let’s say we are developing an app to show the latest movies. We will create a web service that will show the list of movie names from our server. The format can be JSON. So by using the Retrofit we can get the JSON and parse it to show in the app.

b. Glide

Glide is the library to show the images from the server or local storage in a way that maintains the aspect ratio and can handle the image loading, caching, etc. It is recommended by Google.

c. MaterialDesignLibrary

This library helps you create great lightweight UI for the app. It gives the variety of custom UI components that gives extra intuitiveness in the UI of the app.

  • 2. Gradle

Gradle is a build system that helps in building, testing and deploying the app. This system generates the APK from the Java and XML files. There are two types of Gradle (build.gradle) script:

    • a. Top-level build.gradle
    • b. Module-level build.gradle
  • 3. Databases

The Android OS has a local database known as SQLite to store the data locally inside the phone. There are a few third-party database libraries also on the market that can be used in the app. For example, Realm, Room, OrmLite, greenDAO.

  • 4. Firebase

What is Firebase? Maybe you need a mobile app but you don’t want to deal with problems like authentication, server management, file storage, databases, crash management tool, notifications, analytics, etc.

Firebase is the single solution for all the above problems. Here are some key features of Firebase:

    • a. Realtime Database
    • Most of the databases like SQLite provide you the data when you ask for it, but the Realtime Database, like Firebase, gives you the data whenever it is updated.
    • b. File storage
    • Mostly all the apps save the files such as profile picture. Firebase gives a simple way to store images on the cloud.
    • c. Authentication
    • Firebase has a variety of authentication systems that can be used in the app. For example, email/password authentication, social login, phone-based authentication, etc.
    • d. Crashlytics
    • Firebase crashlytics help you fix the issues that come in the live app by versions.
    • e. Analytics
    • Firebase also provides the analytics feature by which you can analyze the usage of the app with different custom events.
    • f. Notification
    • Almost every app has the feature of push notifications. Firebase SDK provides a simple way to integrate the push notification.

There are many other great features of the Firebase SDK and the best part is that it also can support the iOS platform.

  • 5. Code Architecture

Every big idea starts with a small concept, therefore it is important to lay down the foundation in a way that takes the least amount of effort in maintaining and growing with features. One of the big mistakes that a developer can make is not using the planned code architecture.

The following are some problems that occur because of bad or no code architecture.

    • a. Huge amounts of code in a single class or file.
    • b. Code is impossible for another developer.
    • c. It is difficult to debug.

So what you get with good code architecture? Let’s check.

    • a. Understandable code.
    • b. Low-cost maintenance.
    • c. Simplicity.

There are some developer-friendly code architectures for Android.

    • a. MVC (Model View Controller)
    • b. MVP (Model View Presenter)
    • c. MVVM (Model View ViewModel)

Every code architecture mentioned above has its own beauty. But also remember to think twice, code once.


Now you should have the basic idea of what five essential app development tools are necessary for Android app development. Though this is not a complete list, it is a start for any budding developer or Android development team.

If you would like to learn more about Android app development or work with our team of Android experts contact us at

4 Ways to Leverage Technology for Your Business

Could these 4 ways of combining #TechnologyAndBusiness build your business? Read our latest blog. Click To Tweet

In today’s world, most businesses interact with their customers online. Yet, do they really know how to leverage technology in the best way to benefit and grow their business? There are a number of mediums any business can use, and each one has its own return on investment. We’ll look into the following:

  • e-Commerce stores
  • Social media
  • Website forms for lead generation (Examples: Contact or Get in touch forms)
  • Apps

Some business owners use these tools and make money off their products by connecting with customers online, while other businesses (though well-connected) are not able to gain a lot of value. Why is this? 

Technology is a tool that needs to be used with the best interest of the business in mind. It’s not enough to just have all these technology mediums set up for your business. The system needs to be done well enough that it opens the door for more business with your consumers.

With this in mind, let’s look at a number of ways you can use technology for your business needs.

1. Setup the Right Business Website

  • a. Explain your services

Explaining what you do clearly and concisely is essential for growing your user base online. Moreover, the way you represent content helps your website visitors understand your services and contact you to get more information. You can use the various technology options to show your services.

For example, the following list shows what visuals will catch your reader’s eye.

      • i. Visual statistics (charts etc.)
      • ii. Animated infographics
      • iii. Embedded videos (Youtube/Vimeo)


  • b. Gather leads

Writing a compelling Call to Action (CTA) helps any business get the best leads. For instance, a good call to action will grab the attention of potential customers and allow them to easily contact you via your website forms.

Furthermore, a number of services, like Jotforms and Gravity forms, can provide embedded forms to hook into your website. Place them in noticeable areas where they capture the attention of site visitors.

The more leads you have, the more business you close with your customers.

  • c. Allow site visitors to interact with your website

Don’t just create clickable CTAs. Provide an opportunity for your customers to interact with your website. Perhaps giving them a way to explore and provide feedback to you will build your business (all this depends on your business model).

For example, users can give their opinions about the business in a variety of ways.

      • i. Taking a survey about your services or products
      • ii. Filling out a questionnaire about your website to provide feedback
      • iii. Logging in to your website to perform activities (like support tickets or contact forms)
  • d. Sell from your website

If your business has services or products that can be sold online, set up an order system, like an eCommerce site or appointment-booking calendar. Be sure it is easily accessible, contains quality images and gives a straightforward process to bring customers to the end of the purchasing process.

Obviously, every generation is moving more and more towards buying services and products online. While this requires less communication and discussions between buyer and seller, it also puts a weighty responsibility for the developer and business to make sure the process runs smoothly.

2. Get a mobile app (Target mobile users)

It is now the norm for most users to use their phones more than computers for work and personal shopping. Is it best for your business to grab the attention of mobile users to sell your services?

With a number of technology options available for Hybrid/Native mobile platforms, it’s easy to get a mobile app for your business and launch it on the app stores. Does your business need to grow its user base by targeting mobile users?

The following are the most popular and reliable technology options to get a mobile app.

    • a. React Native (Hybrid)
    • b. Flutter (Hybrid)
    • c. Native apps for iOS and Android


3. Reach out to users via social networks

  • Social media websites

One of the best, and maybe even cost-effective, ways to reach users is social media; Facebook, Instagram, Linkedin, Twitter (even Youtube!) and other platforms, which allow you to interact personally with people. These tools also provide business options to create your business pages and allow users to interact with you.

If you’re going the social media route, get the most out of these services by adding as many details as you can. Provide a strong CTA from the social side to your website landing pages so that users know where to go for more information.

Other social interactions include writing blogs and publishing on various sites including and Linkedin. Most people are interested in reading blogs and will contact you if they find your blogs helpful.

Social Media

4. Use a Customer Relationship Manager (CRM) to manage your leads

One of the challenging jobs business owners face is managing their leads and customer information efficiently. In order to keep your business organized, store lead information at a centralized place so that you can run various campaigns (emails, text) with them.

CRM solutions help store leads in a readable manner. For example, the following various activities can be organized in a single workspace.

    • a. Create tasks to contact your leads from time to time
    • b. Run email campaigns to inform about various offers you may have
    • c. Send text messages to inform about quick offers
    • d. Run reports and see statistics of your conversions from leads to customers

Hubspot is one of the most popular CRMs being used by many businesses to manage leads. However, other CRMs, like SalesForce, SalesLoft, and Pipedrive, can be just as effective.




In summary, do you know how to leverage technology to showcase your business online? We know how overwhelming it is to process through what technology best fits your business.

To begin, there are many detailed questions we ask our clients as we work through which technology is the most beneficial. Although we are an IT business, we know that not every business should have an app or be on social media. As a result, IT Hands helps businesses like yours choose the best option to fit their business. Reach out to us at to discover the right technology solution for your business.

Integrity in Business

Is honesty still the best policy? Read our co-founder’s latest blog. #BusinessIntegrity Click To Tweet

The Situation

We had just finished a project for a client. We were conducting a final routine check and would be bidding the client farewell and moving on. They were satisfied with our work. We were happy with how the project had gone with our team. Then we learned something was not done properly in this project.

As a business, we are very vocal about our transparency with clients. We want to hold to the principle of integrity in all of our dealings. That standard is always being tested. After being involved in this business for 17 years, I am always amazed by how often integrity is challenged. This was the case in this situation:

All was not well. Within the client’s internet marketing campaign, our team had set up too large of a geographical area. With the location not centralized, we knew our client paid more for their campaign than if the geographical area parameters were more narrow. We had already completed the project. Did it matter to us anymore? Was it our problem? 

The Choice

We took a step back to consider it. Without any doubt in our minds, we knew we needed to find out how much our mistake had cost this one-time client. Once we did the math, we found that the client had paid a sizable amount. The client was unaware of the mistake. We had given them the chance to review all of our work before closing the project. They hadn’t caught the mistake. They had moved on with life, happy with our work, and we had ended on a good note.

Furthermore, we weren’t pocketing any of the additional money. The payment went to a third-party extension of their website. Was it really our responsibility to cover this mistake? Yes, we thought, it most certainly was.

Matters of integrity are not always glaring issues. Many areas in business are not completely right or wrong.

Giving correct change. That is straightforward. 

The Decision

But even so, in this decision, we knew what we needed to do. Although the project was over. Obviously, the client had left satisfied with our work. Even though we were pocketing nothing from this mistake. Even though the client had no idea about this mistake and would probably not find out. We knew our mistake cost someone extra money. So what did we do?

We wrote a check. We apologized. The client thanked us, taking the check and changes to the geographical campaigning area. Not only did we show a one-time client that we would not gloss over mistakes, but the situation gave us an excellent opportunity to share with our staff.

My business partner and I had been telling our team in India that we are fully transparent in our dealings with every client. We have taught about integrity during development days. Now they were able to see our words become actions. We were able to show our staff what we often quoted to them: “Integrity is doing the right thing, even when no one is watching.” (C.S. Lewis)

Are you looking for a development partner? Contact us today at

AWS vs RackSpace

AWS or Rackspace - which is better? Read our honest review. #CloudHostingComparison #BestCloudService Click To Tweet

What is the best hosting server for hosting a web application? Every hosting provider out there has its pros and cons. As a result, the decision is a tough one.

At IT Hands, we have worked with AWS and Rackspace and can provide you with details about the pros and cons of both cloud-hosting platforms. Furthermore, this blog will show you the difference between some of the core features and services of AWS and Rackspace.

Performance and Reliability



With AWS, it’s easy to set up a server with the AMI (Amazon Machine Image). The configuration of the server can be defined based on the technology. AWS supports the serverless architecture using AWS Lambda. The servers can scale automatically based on the load of the servers and AWS has a large number of data centers across the world. AWS comes with a very user-friendly dashboard and has more services than Rackspace. It helps us a lot while managing hostings and site performance.


Rackspace, on the other hand, does not have as many data centers around the world. It’s a bit tough to manage the servers using its dashboard. Also, the servers cannot be defined based on the application technology, like AWS is able to do.

Hosting Server Rating

AWS ★★★★★

Rackspace ★★★☆☆

Security and Monitoring



AWS comes with an integrated feature called IAM (Identity and Access Management). IAM allows us to manage security and access control within the instances. For example, we can define the specific roles based on the users and restrict their access as needed. In addition to this, AWS comes with security group management. Security groups help with whitelisting IP’s and ports to the servers to keep these secure.

In fact, AWS has its Cloudwatch monitoring service, which is one of the best infrastructure monitoring services. Based on service levels, AWS is on the higher end than Rackspace.


On the other hand, Rackspace provides RBAC Role-Based Access Control. It is a nice way to restrict who has access to Rackspace servers and infrastructure. Rackspace has the Rackspace Cloud Monitoring, which is a bit complicated.

Hosting Server Rating

AWS ★★★★☆

Rackspace ★★☆☆☆




In AWS, there are different levels of support options. You can pay $100 to get business support from AWS. Basically, this includes chat support with the server team and they respond quickly to any queries. I like how AWS support is less expensive but still helps with any issues/queries.


Similarly, Rackspace provides managed support as an add-on service and it is awesome! Although they are available 24/7 and help us with any specific question, it costs $500 per month.

Hosting Server Rating

AWS ★★★★☆

Rackspace ★★★★☆

Cloud files (CDN) (Amazon s3 vs Rackspace cloud files)



AWS has a well-known product called S3. At this point, Amazon S3 is a very reliable and scalable cloud file-based service. It is inexpensive and allows us to add more and more space if needed. S3 is very simple and easy to set up.

It also allows us to create logics to set file permissions and use Rest API for development purpose. The security is one of the biggest plus factors with S3.


Rackspace has a cloud files system called Rackspace Cloud Files. The most important part of this system is that it has an Akamai CDN service available. In the first place, it’s inexpensive and able to be paid on an as-used basis. What’s more, it comes with simple file upload, simple scaling, various media types file support. In addition, it also provides easy deployment and has a simple learning curve. AWS S3 is our choice since it is ideal for development.

Hosting Server Rating

AWS ★★★★★

Rackspace ★★★★☆

Other Features



AWS has native support for DevOps technology like Cloudformation tool for infrastructure automation, CodeDeploy for application deployment and AWS code pipeline for continuous integration and delivery. Moreover, AWS provides managed services called Elastic Container Service (ECS) and managed Elastic Kubernetes Service (EKS) to build the microservice application.


In the same way, Rackspace has many of the support tools and technologies that AWS has, but does it with some third-party integration, not natively.

Hosting Server Rating

AWS ★★★★★

Rackspace ★★★☆☆


In conclusion, we at IT Hands prefer AWS over Rackspace for web applications hosting. AWS provides a number of tools to manage different scenarios and provides a great level of hosting support. Without a doubt, Rackspace has its good qualities – a valuable security system, even if they don’t have the broad reach around the world like AWS. In addition, they have quality support, but their price is higher than many can afford. That is why we think AWS is the best hosting server. 

Need a trusted team to host your website? Learn more about our development process or email us at

Best Hosting Server Rating

AWS ★★★★★

Rackspace ★★★☆☆