DEV Community

SundeepShrestha for Inside GusLift

Posted on

Week 5: Improving Session Persistence and Planning Cross-Platform Support

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)