Kembali ke IDE (Ilmu Digital Ekonomi)
edutech 2024

IDE Super App - macOS

Product Engineer

Tersedia di:

IDE Super App - macOS is a comprehensive educational platform developed for PT Yapindo Jaya Abadi with the tagline "Super Learning Platform for Economics & Business Students. Learn smarter, more efficiently, and practically with IDE Super Apps."

This native macOS application consolidates fragmented learning resources into a unified ecosystem, eliminating the need for students to juggle multiple platforms. Instead of switching between different systems, students can access all learning materials, classes, videos, journals, and expert consultations in one place — with a native Apple experience.

The platform integrates 8 core modules including authentication with secure token management, personalized home dashboard with live class tracking and video recommendations, categorized learning materials (Basic Economics & Advanced), live online classes with Zoom integration and real-time status indicators, premium video streaming with Media Kit player and multi-resolution/speed control, academic journal library with search filters and built-in PDF viewer, program study selection for multi-program management, and profile settings with account management.

Built with Flutter 3.27.4 using Clean Architecture pattern, BLoC/Cubit state management, macos_ui for native macOS design, GetIt dependency injection, and Shorebird for over-the-air updates.

Flutter Dart macOS UI BLoC/Cubit GetIt Dio Flutter Secure Storage Media Kit Syncfusion PDF Viewer WebView Shorebird Easy Localization Sentry Clean Architecture

Highlight Proyek

8 integrated modules in single native macOS application: Authentication, Dashboard, Learning Materials, Online Classes, Premium Videos, Journals, Program Selection, and Profile Settings

Native macOS design with macos_ui package - SliverToolBar, MacosScaffold, CupertinoTextField, and native window controls for authentic macOS experience

Advanced video player with Media Kit integration, multi-resolution streaming (480p/720p/1080p), playback speed control (1x/1.5x/1.75x/2x), and chapter navigation

Real-time class status with live indicators for ongoing classes and countdown timers for upcoming sessions

Academic journal library with 1000+ articles, keyword search, popular category filters (Akuntansi, Ekonomi Syariah, Bisnis, Manajemen, Pajak), and wishlist submission

Built-in PDF viewer using Syncfusion with zoom, navigation, and seamless reading experience for journals and materials

Categorized learning materials with Basic Economics (Ilmu Dasar Ekonomi) and Advanced (Materi Lanjutan) tabs using MacosTabView

Clean Architecture implementation with Interactor pattern for business logic separation and maintainability

Infinite scroll pagination with scroll-to-top functionality for video and journal lists

Over-the-air updates via Shorebird for instant bug fixes without App Store review delays

Info Proyek

Role Product Engineer
Tahun 2024
Kategori edutech

Tech Stack

FlutterDartmacOS UIBLoC/CubitGetItDioFlutter Secure StorageMedia KitSyncfusion PDF ViewerWebViewShorebirdEasy LocalizationSentryClean Architecture

Masalah → Solusi → Dampak

Masalah

macOS users in the IDE Super App ecosystem were underserved. While mobile and Windows versions existed, Mac users had to rely on web browsers or mobile apps running in emulation, resulting in a suboptimal experience.

The existing solutions lacked native macOS integration - no proper window management, unfamiliar UI patterns, and missing keyboard shortcuts that Mac users expect. This created friction and reduced engagement among the growing Mac user segment.

Additionally, premium video streaming on macOS required proper media handling that web-based solutions couldn't deliver efficiently, leading to buffering issues and poor playback quality on slower connections.

Solusi

Developed a native macOS application using Flutter with macos_ui package for authentic macOS design patterns. The application features native window controls, SliverToolBar navigation, CupertinoTextField inputs, and MacosTabView for familiar macOS interactions.

Implemented Media Kit for advanced video playback with multi-resolution streaming (480p/720p/1080p) and playback speed control (1x to 2x), ensuring smooth video consumption regardless of network conditions.

Built comprehensive content modules: categorized learning materials with Basic/Advanced tabs, real-time class status indicators with live badges, journal library with keyword filters and wishlist submission, and Syncfusion PDF viewer for seamless document reading.

Leveraged Shorebird OTA updates for instant bug fixes bypassing App Store review delays, and integrated Sentry for crash tracking and error monitoring.

Dampak

  • Native macOS experience increases user satisfaction among Mac users with familiar design patterns and interactions
  • Multi-resolution video streaming eliminates buffering issues - users can select quality based on their connection (480p for slow, 1080p for fast)
  • Playback speed control enables efficient learning - students can watch at 1.5x-2x speed, reducing video consumption time by 25-50%
  • Categorized materials improve content discovery - Basic vs Advanced separation helps students find appropriate level content quickly
  • Real-time class indicators reduce missed sessions - live badges and countdown timers ensure students know exactly when to join
  • Journal wishlist feature enables user feedback loop - students can request specific journals, improving content relevance over time
  • OTA updates via Shorebird reduce deployment time from days (App Store review) to minutes for critical bug fixes
  • Unified experience across platforms - Mac users get feature parity with Windows and mobile versions in the IDE ecosystem

Tantangan Engineering & Solusi

Hambatan teknis yang ditemui selama development dan keputusan arsitektur untuk mengatasinya.

Tantangan

Native macOS UI implementation with Flutter while maintaining feature parity with other platforms

Solusi

Integrated macos_ui package for authentic macOS design: MacosScaffold for window structure, SliverToolBar for native toolbar with transparency effects, MacosTabView for tabbed navigation, and CupertinoTextField for native text inputs. Used MacosTheme for dark/light mode support and native color schemes (MacosColors.windowBackgroundColor, headerTextColor). Implemented custom window chrome with macos_window_utils for proper window management.

Tantangan

Multi-resolution video streaming with quality selection and playback speed control

Solusi

Built video player using media_kit with HLS support and custom resolution selector. Parsed m3u8 manifests with flutter_hls_parser to extract available quality levels (480p/720p/1080p). Implemented resolution switching that preserves playback position, and added playback speed control (1x/1.5x/1.75x/2x) with real-time stream updates. Used HTTP headers (Referer) for CDN authentication.

Tantangan

Real-time class status indicators showing live vs upcoming classes

Solusi

Implemented status computation in home screen with conditional rendering: live classes show "🔴 Kelas Online yang Sedang Berlangsung" section with real-time indicators, upcoming classes display countdown timers. Built CustomHomeKelasOnlineComponent with isLive flag for different visual treatments. Used polling mechanism to refresh class status at regular intervals.

Tantangan

Efficient journal search with keyword filters and infinite scroll pagination

Solusi

Built JurnalCubit with search and loadmore functionality. Implemented popular keyword quick-filters (Akuntansi, Ekonomi Syariah, Bisnis, Manajemen, Pajak) with toggle state. Added scroll listener with threshold-based load more trigger (200px from bottom), and scroll-to-top button appearing after 300px scroll. Used SliverAlignedGrid for responsive 2-column layout.

Tantangan

PDF viewing for journals and learning materials with native reading experience

Solusi

Integrated Syncfusion Flutter PDF Viewer (syncfusion_flutter_pdfviewer) for professional PDF rendering. Built webview-based material reader using webview_flutter_wkwebview for HTML content. Created separate screen flows for PDF vs HTML content with proper navigation arguments (WebviewMateriBelajarArgs).

Tantangan

Categorized learning materials with Basic/Advanced separation

Solusi

Implemented MacosTabView with two tabs: "Materi Ilmu Dasar Ekonomi" (Basic) and "Materi Lanjutan" (Advanced). Built MateriBelajarCubit that fetches and categorizes materials into listMateriDasar and listMateriLanjutan. Used AlignedGridView.count for responsive 5-6 column grid layout based on screen width (>1920px gets 6 columns).

Tantangan

State management with predictable state flow across 8+ modules

Solusi

Implemented BLoC/Cubit pattern with GetIt dependency injection. Created separate cubits for each module (HomeCubit, MateriBelajarCubit, VideoPremiumCubit, JurnalCubit) with clear state classes (Loading, Loaded, Error). Used Interactor pattern for business logic separation - each module calls its respective interactor (ArticleInteractor, MateriInteractor, VideoInteractor, KelasInteractor). Implemented Either error handling with dartz for functional error management.

Tantangan

Over-the-air updates for macOS without App Store review delays

Solusi

Integrated Shorebird code push system for Flutter 3.27.4 to enable OTA updates. Configured shorebird.yaml with app_id for macOS target. This enables instant deployment of bug fixes and minor updates (minutes vs days) while maintaining app stability through staged rollouts.

Gambaran Arsitektur

IDE Super App - macOS follows Clean Architecture with clear separation between Presentation, Domain, and Data layers. Flutter 3.27.4 handles UI layer with macos_ui design system for native macOS experience, BLoC/Cubit for state management, and GetIt for dependency injection. Business logic is handled by Interactor layer (ArticleInteractor, MateriInteractor, VideoInteractor, KelasInteractor, AuthInteractor), while Data layer uses Dio for REST API calls and Flutter Secure Storage for encrypted token storage. Media Kit provides advanced video playback, Syncfusion handles PDF rendering, and Shorebird enables over-the-air updates.

Presentation
Flutter macOS UImacos_ui ComponentsBLoC/Cubit State Management
Domain
Interactors (Business Logic)Entities/ModelsUse Cases
Data
REST API (Dio)Flutter Secure StorageLocal Cache
Services
Shorebird OTAMedia Kit VideoSyncfusion PDFSentry Crash Tracking
Security
JWT AuthenticationEncrypted StorageToken Management

Screenshots

Tertarik kerja bareng?

Yuk ngobrol soal project selanjutnya.

Hubungi Saya