Last week, we introduced GusLift and focused on building the authentication system that allows users to log in using their Google accounts. This week, we continued working on improving how user sessions are handled within the app and started planning how the application will support multiple platforms.
Our main focus was improving session persistence and thinking about how the platform will eventually run across iOS, Android, and web environments.
Improving User Session Management
One challenge that often appears in mobile applications is how to handle user sessions after authentication. Ideally, users should not have to log in every time they open the app, but at the same time, sessions should not remain active indefinitely for security reasons.
To address this, we implemented Async Storage to store user session data locally on the device.
When a user successfully signs in using Google authentication, key information about the session is saved locally. This allows the application to recognize returning users and automatically keep them logged in.
Currently, sessions are configured to remain active for approximately seven days before requiring the user to authenticate again.
This approach improves usability while still maintaining a reasonable level of account security.
Why Async Storage Matters
Async Storage allows the app to persist small pieces of information locally on a userβs device.
In the case of GusLift, it is used to store session-related information so that users can continue using the app without repeatedly signing in.
Without this feature, every time a user closed and reopened the application, they would need to authenticate again, which would make the experience frustrating.
By storing session data locally, the app can restore the user's session quickly when the application launches.
Planning Cross-Platform Support
Another goal for the GusLift project is ensuring that the application can run across multiple platforms.
Since the project is being built using React Native with Expo, we have the flexibility to target several environments with a single codebase.
Our long-term objective is to support:
- iOS devices
- Android devices
- Web browsers
Supporting multiple platforms increases accessibility and allows users to interact with the platform in whichever way is most convenient.
Why Cross-Platform Development Matters
Building separate applications for each platform can significantly increase development time and maintenance complexity.
Using React Native allows the team to reuse much of the same codebase across different environments, which simplifies development and makes future updates easier to manage.
This approach also allows us to test features more quickly as the project continues to evolve.
Next Steps
With authentication and session persistence in place, the next stage of development will focus on building the core functionality of the platform.
Some of the next milestones include:
- Designing the ride request workflow
- Implementing driver availability
- Building the ride matching logic
- Improving the user interface
As the project progresses, we will continue documenting the development process and technical decisions in these weekly updates.
Final Thoughts
The improvements made this week help create a smoother user experience by allowing users to remain logged in while also preparing the application for broader platform support.
Although the project is still in the early stages, these foundational components will make it easier to build the core ride-sharing functionality in the coming weeks.

Top comments (0)