IdeaTime

A real-time, cloud-based note-taking and idea documentation app.

Technologies
Google Firebase/Firestore, UIKit, Swift
Scroll Down

Focal Points.

  • Learn and understand the basics of SwiftUI
  • Practice passing data from view to view
  • Use Firebase to store data online and user login info
  • Integrate a user sign-in/sign-up system
  • Include dark mode

The Process.

Welcome to my second IOS portfolio piece. With this app I wanted to focus on several new concepts and continue to expand my knowledge as much as possible. To tackle this I decided to make an app with the following parameters; it would have user login authentication and maintain a connection to some sort of database to store references and users and their information. It would have a clean design and be made available for more devices such as iPads. And I decided I would make it with a new UI toolkit called SwiftUI.

To address the issue of finding a good database system to use, I did a little bit of research. I wanted something with a good console that would be easy to use and integrate with my app, and it wasn't long before I came across Google Firebase. Firebase is a tool that allows developers to set up things like user authentication and manage databases for their apps. Considering it is also used a fair amount in the professional world, I thought it would be a unique opportunity to teach myself how to use it.

To begin on the design aspect of the app, I used a website called Figma to get my original ideas out into a visual format. I designed the basic ideas for the app such as the login, create account, home and the searching screens.

When building the app I also had the opportunity to learn how to use things such as structs in Swift. Structs are very similar to the classic Object that is used widely in Object-Oriented programming. The main difference being that they don't support inheritance and functions/methods.

This helped me to grasp concepts such as passing data, referencing data, and storing data within the app. This combined with understanding how to make calls to the Firebase database provided for a very useful experience.

With the implementation of data management in my app, I also learned about a concept called MVC, or Model View Controller. This is a classic framework for app development and an important thing to understand as a developer.

Upon getting the basic functions of the app to work, I submitted it to the App Store for review. This was another huge milestone for me of itself because understanding the App Review process is crucial. As it was my first time submitting anything to Apple, I didn't have any big expectations. Low and behold, they rejected it the first time. I spent a decent amount of time fixing several bugs with the UI and finally getting the iPad version to work, and this time when I submitted it was accepted! My first app in the app store. A truly valuable experience in my journey to become an IOS developer.

Things I would change or improve.

  • Make the text editor have a better visual appearance
  • Fine-tune the UX with improved design and color scheme
  • Add the ability to share "ideas" to social media
  • Add the ability to add media such as photos or videos to ideas within the app