Development frameworks
Luckily in 2025, developing an app is much easier, there are multiple cross-platform frameworks based on popular web development frameworks. There are even some that are specifically designed for developer experience as well!
Considering my previous experience with React, I wanted to look at frameworks that would mimic the development experience you would get with React. After researching, the following fit that criteria:
- Expo React Native (https://expo.dev/): React Native was designed by Meta for React developers to make native mobile applications, Expo takes that further and add quality-of-life improvements.
- Flutter (https://flutter.dev/): Designed by Google to develop apps on both Android
- Tauri (https://v2.tauri.app/): Designed to create smaller scale cross platform applications
I continue to put these into a pros-and-cons table to determine which would be most suitable for me to learn:
Pros | Cons | |
Expo React Native | I’m very familiar with the coding language (TypeScript) Uses component-based architecture which I’m also quite familiar with thanks to my React experience. Expo provides a series of approved libraries and would handle installation for you. Most modern web technologies (Clerk authentication, Supabase storage, Drizzle and Prisma ORM) are compatible with Expo. Supportive community and guides available. Packages that communicates directly with the platform can be easily set up, enabling access to camera, file systems, etc… | React Native is porting JavaScript into Native SwiftUI/Kotlin code, slowing down performance significantly. (https://medium.com/front-end-weekly/how-does-react-native-work-understanding-the-architecture-d9d714e402e0) Upgrading and managing dependancies are complicated with many possible incompatibilities. No design system, will have to use UI libraries or create my own design system. |
Flutter | Comes with a built in design system. Easy to set up. Flutter uses Google’s proprietary rendering engine, making performance smooth and reloading process extremely fast. | I’m not familiar with the coding language (Dart). Uses a class-based approach, which I’m not quite familiar with. |
Tauri | Can use React as the frontend, I don’t need to learn too much and can directly work on the application. Packages that communicates directly with the platform can be easily set up, enabling access to camera, file systems, etc… As far as my research goes, Tauri is quite light-weight and new compared to the others, designed to resolve some of the short-comings. | Uses Rust to communicate with the system, I’m not familiar with Rust. Quite new so major bugs are not addressed yet. Designed mainly for smaller scale applications on Windows or MacOS not mobile. |
Considering all the points above, I decided to use Expo React Native for the project.
Initial app requirements
Now that I’ve chosen a framework to work with, time to refine the app idea.
I want to build a self help application, with journaling capabilities. Apple recently released a Journaling application which specifies the location, who you were with. I want to create something similar to that but with a twist, the app would suggest what to do based on what you already logged.

Let’s create some basic requirements for the application:
- User can log an action, what their mood was that leads to that action, and can add location, people they were with.
- User can view all their pass logs.
- Application would suggest their past actions when the user state their current mood.
Alright! With that, let’s move on to design and development!
References
Apple. (2025, March 11). Apple launches Journal, a new app to reflect on everyday moments and life’s special events. Apple Newsroom (Canada). https://www.apple.com/ca/newsroom/2023/12/apple-launches-journal-app-a-new-app-for-reflecting-on-everyday-moments/
Leave a Reply