Skip to content

Subfly/Storiefy

Repository files navigation

StoryWay

StoryWay is the new way of implementing the Instagram like stories functionality in Flutter. Most of the other implementations rely on navigating through a list of stories of users. In my opinion, it is also possible to apply same effect without navigating, however using pagers. PageView is a very powerful Widget that enabled the way of implementing this functionality.

Not only that, the implementation has been made via respecting the SOLID principles.

  • Clean Architecture with Data, Domain and Presentation layers
  • Dependency Injection on Preferences (Hive, Shared Preferences) and Database (Hive, Sqflite)
  • MVVM-like Architecture with Cubit State Management
  • Simple Event Driven Architecture on story implementation
  • Ready-to-use JSON dataset with service layer that simulates API calls
  • Sliver Tab Bar implementation with NestedScrollView, GridView and ListView
  • Powerful, fast and good looking animations
  • Dark Theme support

You want sneak peeks? There are sneak peeks!

  • Cubic Transition

til

  • Tap left or right to pass stories or users

til

  • Swipe to close stories

til

  • Start from where you left off
  • 1.5 seconds to make a story seen, its a design choice and can be reduced
  • Video is recorded with 2.5 seconds of seen time

til

  • Tap profile picture to see profile, swipe between pages to see stories or posts

til

  • Change injected dependencies
  • Restart required!

til

  • Change theme

til

Getting Started

Install Flutter if not available in your computer from:

Install Android Studio if not available in your computer form:

Install XCode from AppStore if you are using macOS

  • Version implemented: Xcode 14.2

Install VSCode from:

Install these required extensions for VSCode in order to be able to run Flutter:

  • Dart
  • Flutter

Then just run the app such as:

  • Open terminal in VSCode
  • Copy & Paste: flutter run
  • If multiple devices are connected to the computer, the runner will ask you to which device you want to run on
  • If you want to test in release mode, copy & paste: flutter run --release

!!! Important:

  • If you are using iOS emulator, as the video_player package relies on AVMediaPlayer, the app will crash due to unavailability of the player. Try to run on a real device for iOS tests.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published