Skip to content

drenard921/funnyYoke

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Riddikulus

Problem

Have you ever had to confront your greatest fear, and wish you could turn it into something that would make you laugh? Riddikulus is built for just that. It is a real-time SwiftUI Messaging App which turns the words of your beneficiary into silly strings. It's great for de-stressing extremely stressful situations.

Functionality

Riddikulus really is a full messaging app. It lets you sign up, sign in, and sign out of your own Riddikulus account. Once in the app, you can search for other users to chat with, or continue conversations from your conversation history. It also stays signed in when you leave the app, so you don't have to keep signing in and out to message people. Once you've opened a conversation, you can send and receive text messages. And most importantly, you can call a Riddikulus charm, which uses random functions to jumble and play with the other person's texts.

Architecture

The app was built with SwiftUI using CocoaPods for dependencies. The backend is attached through Firebase Authentication and Firebase Datastore, which track, organize, and update the information needed for the app in real-time. The only technology here I had encountered before was SwiftUI.

Things I learned

This Jam was a great learning experience. I learned, well... a lot of things, and I'll list them here:

  • What Firebase Is and how to use Firebase Authentication and Firebase Datastore
  • What CocoaPods is and how to use dependencies to enhance your SwiftUI app.
  • Best practices for organizing project files and setting up XCode projects
  • Using Navigation to create multiple pages (something I'd never done before)
  • Using DispatchQueue to ensure things run smoothly
  • Using properties such as @EnvironmentObject, @AppStorage, and @State
  • Small hacks such as creating CustomModifier structs and using Optionals to display for light/dark mode accordingly
  • Taking and using user input through TextFields and Binding variables
  • How to use Images, Spacers, Modifiers to make my app look nice
  • How to set up an AppDelegate to connect to Firebase
  • How to navigate Firebase and create event listeners for Firebase Datastore
  • How to create a set of AppIcons with Asset Catalog Creator
  • Using guard let else to catch bugs
  • And a lot more!

Things I need to work on

  • The app doesn't -really- work... I didn't have the time to learn how to connect the Riddikulus charm to Firebase, so this data is not updated in real-time for users. I hard-coded variables and used poorly written if-else statements to create the demonstration.
  • ScrollView doesn't scroll when new messages are added! Gah.
  • Images are hard-coded optionals that work for 2 users (here, Matt and Jillian).
  • Previews arent loading, maybe because the model requires Firebase.

Credits

Inspiration: https://www.youtube.com/watch?v=doxxfXqpKYA

To build this app, I followed this tutorial: https://www.skillshare.com/classes/SwiftUI-Build-Chat-App-for-Beginners-2021/266407467

MIT License

About

SwiftUI JAM 2021

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published