Waking up has been especially difficult during these tough times. I usually put my phone across the room, which forces me out of my warm bed to get up across the room to turn off my alarm. The idea came when I saw this very relatable video about Android vs. iOS default alarms. The iOS alarm is VIOLENT, but we’re sure the designers planned this because, of course, they’ve thought of everything.
This app forces you to get up and move, or complete a puzzle in order to turn off that annoying alarm.
What it does
Get Up creates an incentive oriented alarm in order to ensure that the user wakes up. The app includes the basic Alarm layout and features as well as an activities section where the user can select from physical or puzzle activities they would encounter as a method of alarm deactivation.
How we built it
We designed the frontend templates using Figma, then used Swift with Xcode to code the mobile app and animations. We also set up an Android prototype through Java for a broader and more inclusive experience.
The first challenge that we ran into was what platform should we start this on? We knew we wanted a mobile app, but were not sure where to start. Luckily, we got a couple members on our team with some very limited experience in iOS and none in Android. So we decided to take a stab at it and make both!
The iOS app was built using Xcode and the SwiftUI framework. The problem is, SwiftUI is a very new framework. It was only publicly launched in September of 2019, so the amount of documentation and reference material is scarce. This really slowed down our progress and ultimately resulted in a lack of features that we thought we had the time to implement.
It’s also important to mention that later on in the development process was when we decided to take on the challenge of developing an android app in addition to the iOS app. The first challenges were definitely the time constraint and familiarizing ourselves with the android studios platform in terms of design and code implementation. It was something completely new so it was definitely difficult to handle at first. Nonetheless, the more we worked on it, the more acquainted we became with the developing tools and the faster the work got done.
What we’re proud of
With the huge inexperience of building mobile apps on our team, we are extremely proud to have ultimately been able to set up two working prototypes on both Android and iOS.
For two of our members, this is their first Hackathon!
What we learned
From the iOS team:
“We learned so much about the new SwiftUI framework and how dynamic it is. We learned so many concepts behind UI design and how they. In SwiftUI, the UI is updated only when a value changes that you specified with a property wrapper. This improves efficiency because the UI is not updated every second, rather only when is necessary. On the other hand, it presents a completely new challenge because the basic programming principles of flow of control go out the window. We learned with some frustration, that basic if statements do not trigger a UI update themselves. It is important to be meticulous with the code in order to achieve the desired result. This project completely stretched our scope of understanding, but was an enormous learning experience.”
From the Android team:
“We had never worked with Android Studio or any other app development program before, so we had to find videos and tutorials that started from the basics. As we took notes on how to edit XML files and connect buttons to functions, the multitude of developer tools and Java files within our project became less daunting. For example, we were able to create and copy constrained layouts that had their own alarm buttons and objects, which we could then write functions for. By experimenting with many of the features and watching hours worth of Android Studio YouTube tutorials, we gained valuable experience on the structure and mindset behind app development.”
From the UX/UI team:
“Many of the interactions for prototyping were new. Figuring out how to create elements slide in and out by adjusting elements out of frame was a new technique. I learned that it’s important to design prototypes and interactions for developers so they can focus on coding, not worry about interface and aesthetic, and have a visual representation of the app. In addition, designing quickly was crucial. It can be easy for designers to obsess pixel by pixel. But with time constraints, I had to iterate and create the prototype quickly to hand-off to teammates.”
All in all:
Many of us did not have any prior experience with hackathons and group coding projects, but we were able to work off of each other’s ideas and create roles that matched each member with their strengths. We are so happy to have worked together to create something and have loved being a part of this whole experience.
What's next for Get Up
We would love to continue to work on this app and expand our understanding of mobile development. Our team works super well together so we will definitely be staying in touch with each other.