Recently, I got an internship which involved me developing an app for both IOS and Android. I had no prior experience in app development, so the concept was quite new to me. However, I saw that many things I learned in my other programming and software development classes translated really well into the mobile development process. But there were a few things specific to app development that I had to adapt to. For many of those who are planning to or just starting to work on an app, read on about the process that one should take.
Develop the concept
This is something that should be obvious, but people seem to fail to do. The conceptualization of the app and the fleshing out of the concept is what gives you and your team a foreseeable goal that you can work towards. This actually doesn’t apply to only apps, but pretty much any project that you want to work on. Before you start any development, ask your team these questions:
- What is this app?
- What is the purpose of this app?
- Why are we making this app?
- How would people use the app?
- How will people benefit from the app?
- Who is the target demographic?
- What platform(s) will this be on?
- What will we use to develop the app?
- Has this already been done before?
Use these questions and whatever else you ask yourself or your team to help create the design documents, and refer to this document whenever you need to.
Also, remember to use this time to develop the diagrams for the site. I would say that one of the most important diagrams that you need to create is the wireframes, which is a visual representation on the transitions between app pages and the overall look and feel of the website. I would recommend Adobe XD for developing the wireframes, but, in reality, you can use any diagram creation program or even just use Microsoft Word or Powerpoint to get it done. You could even use a piece of paper and pen and just draw the screens out! But also remember to do your use case diagram down as well.
Break down the concept/Understand what you need/Organize
With the concept fleshed out, you should now take that concept and break it down into smaller bite sized pieces for you and your team to carry out. This is important, because this is what helps create the tasks that each team member needs to do.
The best way to achieve this is to use the Scrum method. The scrum method helps with making sure that specific task is done by a specific person within a set time frame, while making sure that all tasks get acknowledged and delivered in the most effective way possible. It is achieved by having each team member, with the project concept in mind, create epics, which are the main big things that makes up the project. Then, with the epics in mind, we have each team member create stories, which are basically smaller elements that make up each epic. Each person on the team owns an epic that they have created. Then, in the sprint backlog, with each person keeping in mind their respective stories, we create the tasks for that people need to do to achieve those stories within sprints, which are 2-3 week time frames for people to do their work in. All of this breaking down and organizing helps everyone keep a leveled head when it comes to what they need to do and how they need to manage their time.
But, on top of this organization, their needs to be management. So, once every week, you would have your team meetup and talk about their overall experience with the project, what they are going to do, and anything that they are worried about. You use this information to determine if some features need to be added/deleted, if someone needs help with anything, and to just have an indication that the project is going somewhere.
Learn/ Train Yourselves
If you have had prior experience with app development, then maybe you won’t have to do this. You are already well versed in the things that you need to do in order to create what you want. But if this is your first time creating an app, or if you ran into something that you do not know how to handle, then you need to set some time for yourself to learn the program or concept and then actively apply it. You can actually do this while you are working, actively learning and creating as you go. But it would be better to understand what you do and do not know before the project actually starts, and then train yourself so that production could be smoother for you. This is especially important for people new to app development.
I can not read your mind from across the screen, so I do not know what IDE you are going to use. But, in the case of using Visual Studio/Xamarin to do app development, you should learn how to program in C# and XAML- C# to program the behaviors of the app, and XAML to create the UI of the app. If you are planning to use Flutter, then you are going to have to learn DART.
These two tutorials should be able to help you out with starting out in Xamarin and/or Flutter:
If you run into any issues during development, dissect what the problem actually is and do some research. Ask your teammates if they have ran into/resolved an issue similar to what you are going through. If you have done all of that and you still can not resolve the issue, then bring this up during your stand-up meeting.
I know that this is all not as direct as the other steps, but, really, there is no one way for you to learn and grow during the development process, and not everyone grows and learns in the same way. But there are a lot of resources that you can use to go far in this, so go ahead and use them.
Create basic functionality
Before you start even placing in any UI elements and making the app pretty, you have to create the main interactable parts of the app. Using the wireframes and other documents that you created previously, create a simple version of each screen. For example, take your main facebook page. That page has a button that links you to your friends list, a button that links you to messenger, a button that links you to your notifications, a field that you can place words on to upload, and an upload button that posts what you wrote. A simplified page would just be a list of buttons, going from the top to bottom of the page, with just three generic buttons - friends, messenger, and upload - and then a line that you can place data on. You would be doing the same thing, but you would be making these simple screens using the wireframes as a reference.
Once you create all of the pages with their elements, start programming the buttons so that they can lead to different screens (if they lead to different pages). Again, use the wireframes to achieve this. Once you get the transitions all figured out, start working on other special functionalities. The aim of this is to try to develop the functionality of the app, so that you can get the main purpose of the app fully developed, while also seeing if some parts of the idea work well with that main part of the app.
Playtest the app
I would say that having people use the app throughout its development cycle is one of the most important things that you need to do. This is important, because these users would be the people using the app once it finally released, and you would want to design it in a way that would make it the most attractive and easy to use for your audience. Have them just take the app and do anything with it, such as finding things, interacting with interactive elements, or just scrolling through each screen.Watch them carefully as they do this, and take notes as you see them interacting with your app. Then, once you are done, ask them about their experience and write what they say down. Review what was recorded with your team, and make the necessary changes to your apps design. If you notice that they like a specific part of the app, then do more of that thing. If you notice that they had issues or just did not like something within the current build, then take that part into consideration when going forward.
Place in UI elements
After the app has been through enough playtests, and you guys are getting good reviews, it would then be time to add some of assets. Now, in a professional environment where we have different teams working on the same app, we would actually have the design team creating and adding the UI elements, animations, and art for the app throughout the entirety of the development cycle, while the programming team implements the functionality. Some of the UI elements should have already been implemented by this stage, but, in the case of where you are an independent developer or if such was not created yet, then now is the time.
When creating the visual aspects of your app, consider…
- The flow of the App: Which page that a person will be taken to when they interact with a page element, whether they are going forward or backwards through the app.
- The data that might show up on that screen: What that data means and how it connects with the UI elements.
- User awareness: The users ability to understand the purpose of this data or a page screen. A connection between the user and the functionality of the app.
- Possibility of running into an error: Communicating to the user that something in the app did not go as intended.
- Appeal: How attractive the app looks and how enjoyable it is to use it.
- Visibility: How well the user can see and comprehend
Try to use less words and more pictures within your UI, but visual elements that can clearly communicate to the user what is going to happen in the app. Not only does this cut down on space taken up on the screen, but it makes things easier to understand and retain for the user. But also try to be as minimal as possible, so that some UI aspects won’t overtake other aspects. You can test to see if your UI conveys itself properly by doing more playtesting and seeing how people react to it.
While this might look like the end, this is more so a condition. At this stage, you should look over how your app operates and how people react towards using your app. If it is so that the app is running smoothly and that you have good reviews for the current build of your app, then it is time to go golden. However, if any of those things are lacking, then you need to look at what is wrong, go back to the appropriate step, and go down from there. You keep on doing that until you are completely confident of your app. But even then, once you go golden, you should still consider to make plans for updates to the app, since, on release to the wider public, you might see some ways to improve.