<aside>
💡 네오 오디오 is a audio-book streaming service launched from Neocomix, a partnership company of Mindslab, Inc.
</aside>
Project Duration
2020.10 ~
Important Features
- Provides a streaming service of audio books, which are generated by TTS engine of MindsLab.
- The audio files can be uploaded using a simple admin web app. The files are stored at AWS S3, and provided to authenticated users via Cloudfront.
- Authenticates the users using Firebase, and requests to streaming service via AWS Cloudfront and Lambda@Edge.
- The client (mobile app and admin) uses Firebase SDK for Flutter and web, respectively. The server authenticates id token provided by client, using Firebase Admin SDK.
- The requests to media files at Cloudfront are intercepted by Lambda@Edge, and the token at the HTTP header is authenticated.
- We are developing Android and iOS app at once, using a platform-independent mobile framework: Flutter.
- We maintain clean code structure, using Provider and BLoC patterns.
- Provider pattern is used for the general part of the code.
- BLoC pattern is used where the data updates rapidly, such as handling the media state stream (position, queue, etc).
- Minimizing network calls by caching of network results, using GraphQL client library in Flutter.
- For native features (such as, media notifications in Android and iOS), we use method channel interfaces to communicate between Dart code and native code.
Role
- I am working as a project maintainer and core developer in this team.
Stack
- Mobile front-end: Flutter, Firebase (FlutterFire),
graphql_flutter
, Native Android
- Web front-end: ReactJS, Apollo GraphQL
- Backend: AWS, Serverless Framework, GraphQL, TypeORM
- CI/CD: Docker, Jenkins, Fastlane