iOS Projects


Potty Finder

Potty Finder is an iOS application that I have created for my senior project. This app targets users who are in an unfamiliar area and want to find a clean restroom near them. As soon as this app is opened, it requires permission to use the current user's location. With location services turned on, my app will display any restrooms on a map that have been rated by our peers. This app will help people find a restroom that they are comfortable using when they are traveling or can't make it home. This app will also display features of a certain restroom such as: if you need a key to get inside, if there is any accessibility options, if there is a baby changing station, or if there is an all-gender bathroom and etc.

This application was designed with an MVC design, so I can keep my views of the design and the code separate. This allowed me to easily integrate a database and easliy read, write, and delete from firebase. This project helped me practice my design ambitions and also helped me critically think about how to make it the best for user experience. Whenever I didn't know how to do a certain functionality, I was able to seek help from others with Xcode experience. I also gave a demo presentation, which allowed me to receive great feedback and improve the functionality of my application. I believe this project can help communities on the global spectrum, because I believe this app can help many people and help restaurants to stay clean and updated.

Flash Chat

Flash Chat is an application where the user is able to create an account an chat with other people. This was my first application with a login page and I used Firebase for my authentication. I also used Firebase Firestore to store all the users that signed up and all the messages that were being sent. I learned how to create a custom text cell and implement them through the view controller. I also implemented DispatchQueue to properly retrieve and store data from Firebase.




This application is a complete replica of the calculator iOS version that comes pre-installed on every iPhone. I decided to create this app to practice my ability on making apps responsive for any size and landscape mode. There are many elements to this concept and knowing where and why to put constraints on certain elements was difficult. This app also functions like a normal calculator so any user will be able to compute any problem they need.

Weather API

This application displays the weather in London by default until the user searches another location or presses on the current location button in the top left. If the use presses the current location button, then the app will change text to their current city and display their weather. The user can also use the search bar at the top to look for the weather in any city. This was achieveable by using the openweathermap api and retrieving the current users location. It was difficult obtaining the users location because of knowing where to go in Xcode to request such permission and using LocationManager. This application also changes icons based on the weathers condition in that city that were obtained from the api call.




Bytecoin is an application that retrieves the value of Bitcoin and displays that value in any currency of the users' choosing. The app was my first experience using API keys in an iOS setting I was able to retrieve data from with my api key. This project was challenging learning how to retrieve data from an api and how to parse through the JSON data. I was also introduced to using delegates for my UIPickerView and used extensions to separate my functionality of the picker view and bitcoin api

Tip Helper

Tip Helper allows a user to input the price of any bill and will calculate how much you also need to tip based on the percentage that is pressed. Then the app will also split the bill between a chosen amount of people. Once the 'calculate' button is pressed, a separate screen will display how much each person needs to pay for the bill and tip. I learned how to correctly involve user input into an application and how to use a step counter. This application was challenging in a way to deal with responsiveness with so many elements.




I made a Trivia application that allows a user to take a quiz and see how many correct answers they can obtain. There is a progress bar at the bottom and shows the user an estimated percentage of how many questions are left in the quiz. With each question, whichever answer is clicked, that answer will either turn green for correct or red for incorrect. If the answer is correct, the user score in the top left corner will increase by 1. This application showed me how to work with a progress bar and how to keep track of a users' score throughout the whole application.

Story Choices

Story choices is an application that tells a story but lets the user decide which path they want to take. With each option, there is a different path that changes the story and will end differently than before. I was able to use some structs and story models to help better implement a MVC model. I created an array of stories with designated destinations to help design the layouts of my stories.



Egg Timer

This application allows a user to set a timer based on the hardness of egg they want cooked. There are three different types of hardness: soft, medium, hard. When one of these options are clicked, a timer starts and there is a progress bar at the bottom of the screen. When the timer is finished, an alarm will play and text will change on the screen implying that the egg is done. This allowed me to practice using timers in Xcode and changing text when a certain event is completed.

BMI Calculator

BMI Calculator is an application that will give an estimate of your Body Mass Index based on you height and weight. There are two sliders on the main page and that is where the user can easily input their height and weight by sliding to the exact amount. Once the 'calculate' button is pressed, another view controller appears and displays the BMI estimate. You are then allowed to restart and calculate as many BMI's as wanted. This allowed me to practice transferring the values of variables across view controllers.



Magic 8-Ball

This magic 8-ball application allows a user to ask a question and when the user presses the 'ask' button, a randomly generated answer will appear on the 8-ball. I used a random generator to display different answers when the 'ask' button is pressed. I also used a MVC framework and tried this framework out with a smaller prototype, before I used this framework on a bigger project.


This application displays different keys of a xylophone and when a certain key is pressed, a different pitch of sound will play. You are able to make and play music without the purchase of a real xylophone. The imagination is up to the user. Creating this application allowed me to explore more options that can be returned when a UIButton is pressed. I also learned how to incorporate .wav files into an app and learn about the DispatchQueue for these sounds.



Dice Roll

Dice Roll is an iOS application that displays two dices and everytime the user presses 'Roll', the dice will randomly display two dice faces. When the 'Roll' button is pressed, I have a built in randomizer that chooses from an array of six different dice faces and output one to the screen. This simple project allowed me to learn the layout of Xcode and practice using a randomizer. I learned how to make an application responsive to any size and if it is in landscape or portrait mode.