My first native iOS app: YOURA

Hansel Matthew
4 min readMay 1, 2022

Hello and meet my first native iOS app called YOURA — your personal music assistant. Built using UIKit and native iOS elements. This app is created as the first Mini Challenge for my participation at Apple Developer Academy @ Binus

Youra Header

This app is built by a 6-person team that consists of me (Tech) and 4 of my friends: Stephen (PM), Audrey (Design), Melvin (Tech), Laura (Design), and Rahmat (Tech). Starting from the big challenge we want to help reduce stress through music. We have done various brainstorming and research method such as lotus blossom, creating guiding questions, user candidate and music therapy experts interviews, desk research, and many more. We also created our user persona that we named “Rahmet”

Finally, we developed and synthesized YOURA app statement:

A native iOS App that solves stress during work time by channelling their stress away using music for professional workers by limiting their continuous work hour, providing them a suitable music according to their profiles and notify them to take a quick break in between their work. This is a solution to the challenge because many professional workers are stressed due to continuous work time.

The name YOURA came from the sentence: YOUr personal music theRApist. Basically the app will time your work duration and remind you to take a rest for the specific rest duration. You can set your own work and rest duration based on your needs. While you are resting, YOURA will play a relaxing music to help you loosen up.

After we have a clear app statement and goal, we continue the design process of the app. We did the crazy 8 methods so each of us created 8 lofi designs for the app. Afterward the design team (Audrey and Laura) continue to develop the hifi design of YOURA.

YOURA hifi design

Finally, at the development process I am personally in charge of 3 main things:

  • Home screen with duration picker half screen modal

For the home screen, i created a storyboard for the main screen and put the element inside it, but for the half screen modal, i did not use the conventional way by using a modal segue. All of the element inside the modal are created by code and added using the Add subview method. This contrast with the UI development of the home-screen that used a drag and drop method and i really struggle to understand it at the beginning. At the beginning when developing by myself, i used delegates and protocols for the data transfer between the modal screen and the home screen to send the duration data from the time picker. But afterwards, this is revised to using Userdefaults. This is mainly because we want the duration to stay the same if the user exit our app and open it later.

  • Dark mode

For the darkmode, this is done by changing the appearance style all of the picture assets and color set in the project. This is not a very difficult task but it is quite tiring because there are many repetitions of changing asset appearance, importing assets, and creating color sets. I also created a Userdefault instance to save the appearance the user chose so that i does not have to follow the device appearance.

  • History table view.

For the table view, the challenge here are the creation of a custom table view. I created a new UITableViewCell class with its correspondent xib file. Then i edited the look of the table from those two files.

Overall it was a satisfying experience and result especially for me that is not a Computer Science/Software Engineering major. I learn many things such as its better to import both light and dark mode assets from the beginning, how to use various Apple UIKit libraries and elements: TableView, Coredata, UserDefault, NavigationController, TabBarController, and ofcourse how to upload iOS app on the app store connect. And also very grateful that even though the team members are randomized, I got a very solid and exciting team (shout out to all YOURA team members).

If you guys are interested, you can try out YOURA for yourself:

--

--

Hansel Matthew

A student that learn many things. State of the art things. Currently studying Machine Learning and iOS Development