DevTeam.Space Product Development Blog

Explore our in-depth product development tutorials and new technology announcements published by our software development experts

All articles

How To Build A Time Management App

Modern life is hectic to say the least.

People regularly juggle equally important priorities. Many often feel that they are not in control and often don’t get everything completed as they must.

People are increasingly turning to time management apps to help sole this problem, and, naturally, entrepreneurs are keen to tap into this growing market. If you plan to launch such an app, then this guide on how to build a time management app is a must-read for you.


The market for time management apps
An example of a time management app
How do you create a time management app?
Strategize well before launching a time management app

The market for time management apps

Time management apps are within the overall category of task management software, and the market for this is growing. Task management software market will likely reach $4.33 billion by 2023, as a “Markets and Markets” research report states.

Time management mobile apps belong to the “Productivity” category, and the following statistics illustrate its popularity:

  • A Statista report shows that as of May 2019, this is the 11th most popular category of iOS apps.
  • Another Statista report states that as of June 2018, “Productivity” apps are the 6th most popular category among Android apps.

    An example of a time management app

    Let‘s review a time management app, and understand what it offers. Todoist is a popular time management app, and it offers the following:

    • Users can get a clear view of their tasks.
    • They can view the deadline, moreover, they can see the recurring deadlines for repetitive tasks.
    • App users can review their days or weeks ahead.
    • Todoist helps users to prioritize and organize their tasks.
    • Users can set goals, update their status, and record their time. They can see their progress using the visual aids that the app offers.
    • App users can integrate Todoist with their Google calendar, Dropbox and other similar productivity tools.
    • The app offers in-app purchases.

    Todoist has an excellent “User Interface” (UI), moreover, it is available on the web, Android, iOS, and desktop. The app has free as well as premium versions. You can find more examples of time management apps in “13 time management apps that will make you more productive”.

    How do you create a time management app?

    I will now describe the steps to build a time management app, which is as follows:

    1. Arrive at a project scope definition

    I recommend that you work with the following scope, to start with:

    • Create a web, an Android, and an iOS app targeting one geography.
    • Offer the following features:
      • Users should be able to create tasks and plan them.
      • They should be able to enter their time, and post updates.
      • The app should show them the status of their tasks at various levels of granularity.
      • Users should see their progress in the form of visual charts.
      • The app should enable users to plan for an extended period like a week, moreover, users should be able to view the plans.
      • Push notifications, in-app purchase, and online payment are the other required features.

    2. Agree on a suitable software development methodology

    I suggest that you undertake a discussion with the business stakeholders, and agree on a development methodology. You might want to launch a “Minimum Viable Product” (MVP) and get market feedback.

    Subsequently, you can undertake enhancements to the web, Android, and iOS apps. This points to iterative development and agile works well in such projects. Read “Waterfall vs Agile: which methodology is right for your project” to understand why you should use agile here.

    3. Formulate an approach for the development project

    You should work on devising an approach for this project, consisting of the following building blocks:

    • Use managed cloud services like “Platform as a Service” (PaaS) for the web app, and “Mobile Backend as a Service” (MBaaS) for the mobile app. This frees you up from IT infrastructure management.
    • Utilize “Integrated Development Environments” (IDEs) and frameworks, which can expedite the development.
    • Make use of “Software Development Kits” (SDKs), and “Application Programming Interfaces” (APIs) to implement core features. You can do this to implement task management, push notifications, in-app purchase, and online payment features.

    In addition to the above, use “app internationalization” best practices when designing and developing the app. There are several such best practices, e.g., keeping the code separate from the content. This helps in preparing for future expansion into other geographies, and you can learn about this in “The ultimate guide to mobile app internationalization”.

    4. Form a project team

    You should include the following roles in the team:

    • Business analysts;
    • UI designers;
    • Web developers, with Node.js skill;
    • Android developers, with experience in Java;
    • iOS developers, with Swift expertise;
    • Testers;
    • A project manager (PM).

    Since you will use managed cloud services like PaaS and MBaaS, you don‘t need to hire cloud platform architects, IT infrastructure specialists, and mobile backend developers.

    Note that the scrum technique is very useful to manage agile projects, and you should consider using it. The PM works as a “scrum master”, and forms small, cross-functional “scrum teams” where developers work together with testers. Together, the team works on “sprints”, which are iterations in scrum parlance. Read more about it in “How to build a scrum development team?”.

    5. Use a PaaS platform for web app development

    As an entrepreneur, you probably haven‘t invested heavily on IT infrastructure. PaaS platforms can help you to get started with the web app development quickly, without upfront investment in IT infrastructure. As I have explained in “10 top PaaS providers for 2019”, PaaS platforms offer several advantages, as follows:

    • PaaS providers manage the cloud infrastructure, networking, server, middleware, operating system, and runtime environment. This frees you up for the development.
    • You can easily integrate databases and other 3rd party APIs into your app.
    • PaaS platforms offer excellent DevOps tools.
    • They also have “Application Performance Monitoring” (APM) and auto-scaling solutions, which help you in scaling your web app.

    Sign-up with AWS Elastic Beanstalk, a market-leading PaaS platform offered by AWS.

    6. Get an MBaaS account for mobile app development

    The next step is to get an MBaaS account since it helps with mobile app development. There are many advantages to using MBaaS, e.g.:

    • MBaaS platforms manage cloud infrastructure, persistent storage, etc. You don’t need to develop and manage the mobile backend.
    • You can integrate security features, user management functionalities, and 3rd party APIs easily into your app.
    • MBaaS platforms deal with the complexity arising from numerous mobile platforms and devices.
    • Scaling a mobile app is easier when you use an MBaaS platform.

    Read “How to choose the best Mobile Backend as a Service (MBaaS)?” to learn more about these advantages. I recommend that you use your existing AWS account, and sign-up with AWS Amplify, which is the MBaaS offering from AWS.

    7. Install IDEs

    You need to install the following IDEs for this project:

    8. Get access to a mobile device and browser lab for testing

    You need to test your web and mobile app against a multitude of browsers and mobile devices. I suggest that you sign-up for a testing aid that offers these browsers and mobile devices on the cloud. Experitest has the right solution for this, and you need to sign-up for the following:

    9. Sign-up for a task management API solution

    You need a task management solution in your app. Trello provides a good solution, and you can consult the following resources, to use it:

    • Access the API on the Trello developer portal.
    • Check out their API documentation here.
    • You can also read the API reference documentation here, for details guidance.

    10. Find a time management API solution

    I recommend that you get an API solution to implement the core feature of time management. Hubstaff has a robust solution for this, which offers the following features and advantages:

    • Their time tracking API helps you to get time tracking data with screenshots.
    • The data is at the level of keyboard and mouse activities.
    • The app can provide weekly reports on tasks and the time spent on them.
    • You can access the API documentation on the Hubstaff developer portal.

    Check out their pricing plans here.

    11. Procure an API solution for the in-app purchase feature

    An eCommerce solution will help you in implementing the in-app purchase feature. I recommend that you use BigCommerce, and you can check this documentation about the BigCommerce API. BigCommerce displays their pricing plans here.

    12. Get a payment gateway solution

    You will need to implement the online payment feature in the app, therefore, use the APIs/SDKs offered by Stripe. You can use the following resources:

    Find out about the Stripe pricing plans here.

    13. Find an API solution to implement the push notifications feature

    I recommend that you use a bulk SMS solution to implement the push notifications feature. Twilio has the right solution for this, and you can sign-up for their “Programmable SMS” offering. Find their guides here, and here. Check out their pricing plans here.

    14. The Web app development

    You can proceed with web app development, as follows:

    • Use Eclipse IDE to code the app using js. This open-source runtime environment helps in developing scalable, performant web apps. There are thousands of shared open-source tools and frameworks for Node.js, which improves the productivity of a web developer.
    • You can read “Adding a database to Your Elastic Beanstalk environment” for guidance, and use database resources in your app.
    • Integrate the API solutions I have described above.
    • Test the app.
    • Read “Deploying Node.js applications to AWS Elastic Beanstalk”, to find how to deploy the web app on AWS Elastic Beanstalk.

    15. UI design for the mobile app

    Let‘s start with the mobile app now, where the first step is to design a great UI. You need to pay attention to the following aspects:

    16. Developing the Android app

    As the next step, you can proceed with the Android app development, as follows:

    • Use Java, and pay attention to the licensing requirements found here.
    • Code the app using Android Studio. The development team can find guidance in “Build your first Android app in Java”.
    • Integrate Trello, Hubstaff, BigCommerce, Stripe, and Twilio SDKs/APIs in the code.
    • Test the app using Espresso, and the mobile device lab on the cloud from Experitest.
    • Publish the app to Google Play, following this guide.

    17. Code, test, and publish the iOS app

    The development of the iOS app involves the following steps:

    • Use Swift, the modern language for iOS development. Its powerful features and English-like syntax improve the productivity of programmers, furthermore, the language helps in eliminating coding errors. Apps coded in Swift are fast.
    • Xcode, the IDE you will use, fully supports Swift.
    • Integrate the SDKs/APIs for task management, time management, eCommerce, online payment, and bulk SMS solutions in your app.
    • Use XCTest for testing the app, moreover, you should use the Experitest mobile device lab on the cloud.
    • Check out this guide, before you publish the app to the Apple App store.

    18. Use a robust PM tool

    Scrum teams work as follows:

    • A “product owner” provides the requirements in a document named the “product backlog”.
    • The team holds a “sprint planning meeting” to estimate the requirements, and plan them in sprints.
    • The scrum master holds a “daily stand-up meeting” to discuss the project status.
    • Demonstration of the app takes place in a “sprint review meeting”, where the project stakeholders approve the sprint provided the app works.

    I recommend that you use a robust PM tool like Jira to manage these various activities.

    Strategize well before launching a time management app

    While platforms, tools, APIs, and frameworks can help, a software development project to build a time management app is a complex one. You might need to engage a software development company, therefore, read our guide “How to find the best software development company?” before you do so.