Hey everyone, my name is Stephane Boutet and this is the beginning of my capstone project for the Launch Your First App program.
I come from a background in stem cell biology, genomics and single cell gene expression. I’ve been learning iOS for the past 2 months.
Ultimately, my goal for learning iOS development is to make useful apps for my fellow biologists in the laboratory. I am doing this mostly for fun as I always wondered what it would be to have an app on The App Store…(I’ll let you know how it goes!)
I’m looking forward to updating this project log as I progress to completing my capstone project!
So far, here are my plan for my first App for the CWC capstone project:
MVP for APP.001
Description:
Timer dedicated to experimental scientists (Biologists, molecular and cellular biologists)
Only 2 lab timers in App store for iPad (which is strange since people have phones but not iPad!?)
Requirements:
Main screen (HomeScreen) shows a deck where users can add timers from a library to Timers. They can select individual or group of timers or, alternatively, create a new one and directly add it to the deck. They can visualize all timers counting down or up at the same time. They can also select a timer for a detail view of the selected timer.
(Note: After a quick search, I couldn’t find a timer for scientists on iPhone. I did find 2 timers for scientists for iPad (with poor designs) which is strange since iPad are not super common in research laboratories?!)
Users can organize timers in groups/experimental protocols
Users can set timers as counting up or counting down (99 hours, 60 minutes and 60 seconds)
Timers are accurate and persistent (timer can continue where it left off after dismissing page or app? (use Date to keep track of Timer)
Users can set Favorite timers (“Favorites”)
Users signs up and sign in/out (Firebase Auth and firestore) => This is useful the future such as building a user base for future Apps, updates, etc or gamification for community based ranking (mostly out of scope for MVP - MVP has only registration, sign up and sign in and profile)
Users have a profile
No or very limited gamification (fireworks at the end of timer and count of completed timers)
App has original sounds for alarm and transitions between pages
users can select an alarm sounds for each timer
Initial library is populated with a few protocols (SPRI Select protocol, 10x single cell gene expression V4, TBD), load protocol from JSON files
Need a clean/simple design, easy to use app and professional interface (very important since it is a classic differentiator in this space).
Free version without pre-loaded protocols (goal: gain users and get feedback and make a useful app)
It may be possible to have a Paid version with pre-loaded protocols (I need to do a market study on this.)
Hi All,
quick update on my project.
I have the main part of the app working.
I have the onboarding in good shape and now I am working on the integration with firebase (authentication and firestore) … which brings me to re-evaluate the architecture (with clean DI, MVVM/MVC and user data DB) … I am doing things in reverse it looks like … can you tell I am not a software engineer!!! I also spend less time on Figma even though it is a great tool. I found that I usually complicate the design in Figma.
Few things I am learning build an app:
Start your App from the user auth and user data as the core of the app
Look for the cleanest and simplest design in Xcode first (function first) (I am a beginner in swiftUI so don’t kill yourself with complicated design)
build assets (colors, images to reinforce the swift design)
doing a lot of prototyping to test specific technical aspect helps
my plan is to finish the firebase and firestore UserDB and the images assets done by the end of the November. I should be left with exploring revenueCat and check out testing…
Slow progress and so much to learn!
I spent a lot of time working on the performance optimization of the app which led me to change a lot of the design of the app.
Essentially, I simplified the app in terns of design (to have a light UI) and optimize the architecture of one of the manager. I learned a lot and I got stuck many times. It may be something to add in the course (How to optimize app for performance and how to troubleshoot performance issues?)
I never thought I would spend so much time working on this step…to remove fancy UI that had performance issues with the main timer function when the library starts to have too many items.
Anyway, onwards to the last steps:
Working on the submission to the App Store (form preparation and test the workflow)
Adding more protocols to the protocol library on the App
Preparing App Store assets and messaging for Figma
Need to review/update the firebase authorization
Finalize localization (EN, FR, ES, DE, ZH-HK, ZH-Hans) since I am no longer changing the UI.
Record movie and screen capture for marketing assets
Hello everyone,
Quick update on the App.
I have been doing some internal testing and fixing a few bugs:
fixed small layout bugs in different places
add appleID revoke with Firebase It took me a while to figure this out and need testing on a device)
finalized localization translation (French, Spanish and Chinese)
everything is ready for the Appstore submission. I just need to upload the last version with minor changes. And send it to my test group.
We are getting very close!!!
Best,
Stephane
Hello everyone,
Well! this is it. After internal testing (essentially me!) and fixing minor localization problem for French, Spanish and Chinese. I just sent for testing on TestFlight.
I also added previews in French, Spanish and Chinese.
I am waiting for the initial testers feedback before the submission to the App Store.
At the submission, I’ll make a report with the comparison from the initial definition of the MVP and the actual submitted MVP. This should be interesting!
Cheers,
Stephane
Hello,
Well I just realized that the external tests need the app to be submitted.
So I submitted it! Nothing to test anymore. Looks ok for this version of the app.
Let’s wait and see!
Stephane
Hello everyone!
This is official. My first app was accepted today at the App Store!
Thank you the CWC team for all the courses and help.
It took me almost a year to get to this point starting from zero. I knew a little of python and R for bioinformatics but nothing for making a mobile app.
So, where do I stand from the initial MVP definition?
MVP
Name: Scientific Timer is a timer dedicated for experimental scientists (molecular and cellular biologists). It is fairly rare type of app in its specialization and yet VERy used in this experiments. The name doesn’t follow completely CWC guidelines but the first app was mostly dedicated to learn the entire process (that will need further refinement for the next evolution of the app). In retrospect, I had a LOT to learn … and sometimes it felt too much!
Anyway, on to the requirements…
the app is a set of timers organized in groups (found in protocols) with edit/create functions
The timers are persistent
I have user Sign in with Apple and Google. I actually removed email sign in as 95% of iOS users use Apple sign in.
user profile is shown with firebase information (created from authentication)
I dropped the idea of gamification. (not required in the MVP definition)
I dropped the idea of adding sounds besides the timer notifications when completed (Not necessary in a noisy laboratory)
I removed the ability of choosing different alarms and preferred a more subtle notification type (Loud timers are mostly annoying in laboratories!)
I indeed aded a library of well known protocols (12). Some protocols have 40 different timers used.
I did use a clean and simple design. I actually scaled back my design with less animation that didn’t perform well. Once you discover the ability to make nice design, I went a little overboard !!! (which affected the performance of the app)
For now it is a paid app at $2.99 but it is a first step.
I added localization which was not described in the original MVP. (for interface, onboarding and protocols)
So pretty good!
The most surprising part from this journey was:
finding an architecture that runs efficiently. I used a lot of managers with @Observable classes (notification, timer, auth and user manager). And the coding part was only half of the journey!
The design work takes a lot more time than I thought. It feels I should start with this next time… Thank god for the course on Figma!
It was an also surprising the time spent on Carrd, on the Privacy policy (US and France) and on drafting the text for the App Store. Again, I am grateful for the course on the App Store!
Looking back I am so happy to have done the CWC course as it helped me discover software development in a fun way. I really enjoyed the course that goes beyond the scope of just coding and that it takes your hand to learn Figma, Carrd and the App Store Connect. I don’t think I would have been able to do all this on my own.
A big thank you to Chris and to the entire CWC team!
Cheers,
Stephane
PS I’ll have to finalize the assignment to get the certificate!