SwiftUI JAM 2021

Overview

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

You might also like...
Best architecture for SwiftUI + CombineBest architecture for SwiftUI + Combine

Best architecture for SwiftUI + Combine The content of the presentation: First of the proposed architectures - MVP + C Second of the proposed architec

Weather-swiftui - An example of using SwiftUI

weather-swiftui An example of using SwiftUI Installation Get openweather api key

Orbit-swiftui - Orbit design system implemented in SwiftUI for iOS

Orbit is a SwiftUI component library which provides developers the easiest possi

SwiftUI Resume - A simple resume writed by swiftUI + Combine
SwiftUI Resume - A simple resume writed by swiftUI + Combine

SwiftUI_Resume a simple "resume" writed by swiftUI + Combine

SwiftUI-MSALSample - Sample project to login with MSAL using SwiftUI
SwiftUI-MSALSample - Sample project to login with MSAL using SwiftUI

SwiftUI-MSALSample I could not find a good walkthrough on how to implement MSAL

100-Days-of-SwiftUI - Studying through Paul Hudson's 100 Days of SwiftUI
100-Days-of-SwiftUI - Studying through Paul Hudson's 100 Days of SwiftUI

Hacking with SwiftUI 100 Days of SwiftUI Studying through Paul Hudson's "100 Day

Watchos-navlink-swiftui-bug - Example Project to demonstrate bug in SwiftUI when NavigationLink is activated inside a TabView SwiftUI-Card - Simple card ui designed using SwiftUI
SwiftUI-Card - Simple card ui designed using SwiftUI

SwiftUI - Card Simple card ui designed using SwiftUI Preview

Swiftui-pressed-states-example - Examples of Pressed States in SwiftUI

Examples of Pressed States in SwiftUI pressed-states.mp4

Owner
Dylan Renard
Junior at the University of Washington with an interest in Biochemistry and Computer Science.
Dylan Renard
CS193p-2021 - Stanford University's course CS193p(Developing Applications for iOS using SwiftUI)

?? Stanford University's course CS193p - 2021(Developing Applications for iOS us

Oleksii Dziubenko 2 Dec 18, 2022
The concept took third place in the Design Concept Award contest Season 1 in 2021.

SpringAnimation Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #1. SpringAnimation demo. Inspired b

You are launched 5 Jul 10, 2022
The concept took second place in the Design Concept Award contest Season 1 in 2021.

SmileRate Developed by Alex Kryvodub as part of the You are launched "Design Concept Award" contest Season #1. SmileRate demo. Inspired by Duy Luong c

You are launched 1 Jan 12, 2022
MetroHacks project 2021

Splanner MetroHacks Project 2021 Devpost link: Devpost We made an app for Metrohacks 2021 that would show you your personal schedule with class names

null 1 Nov 22, 2021
Advent Of Code (AoC) 2021Advent Of Code (AoC) 2021

AoC-2021 Advent Of Code (AoC) 2021 This are my solutions to the Advent Of Code 2021 event. This year I've been playing along with timsearle and SFrost

Mike Bignell 1 Dec 16, 2021
🎲 100% SwiftUI 2.0, classic 2048 game [SwiftUI 2.0, iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Swift 5.3].

swiftui-2048 If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo. ✍️ Abou

Astemir Eleev 174 Dec 17, 2022
A simple SwiftUI Application to demonstrate creation of UI using SwiftUI.

WatchShop_UI A simple SwiftUI Application to demonstrate creation of UI using SwiftUI. How to run the project ? Fork the project. Run the project usin

Shubham Kr. Singh 12 Apr 15, 2022
E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy.

Touchdown-SwiftUI E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy. Main components and concepts used: @EnvironmentOb

Jorge Martinez 5 Aug 18, 2022
A multiplatform SwiftUI project demonstrating various SwiftUI features.

WikiDemo A multiplatform SwiftUI project demonstrating various SwiftUI features, including creating a master-detail interface. It's a multiplatform ve

Swift Dev Journal 6 Oct 17, 2022
SwiftUI Projects from Udemy SwiftUI Masterclass

SwiftUI Masterclass Repos: AsyncImage (N/A) Fructus (finished): an app for getting information about different fruits. Data comes from json files. Afr

Patrick Spafford 1 Mar 3, 2022