
Your songbook for Android, iOS, Windows, Linux, MacOS
SongLib is a robust mobile solution tailored for our users who need to sing hymns, designed to streamline their operations and enhance productivity. This Flutter-based application facilitates their access to your church songbook/hymns seamlessly that you don't have to worry about even being online once you have set up the app on your device.
![]() |
![]() |
![]() |
![]() |
![]() |
Follow this guide to set up and run SongLib:
-
Install Flutter and Dependencies: Ensure Flutter is installed on your system. Download the Flutter SDK from the official website and set up your preferred IDE (e.g., Android Studio or Visual Studio Code) with the Flutter plugin.
-
Clone the Repository: Clone SongLib repository from GitHub using Git:
git clone git@github.com:SiroDaves/SongLibApp.git
-
Install Packages: Navigate to the project directory and run:
flutter pub get
-
Device Setup: Connect an emulator or physical device to your development environment. Check connected devices:
flutter devices
-
Update Dependencies:
flutter pub get
-
Update Code Generated Files:
dart run build_runner build --delete-conflicting-outputs
-
Update Localization Strings:
flutter gen-l10n
-
Running SongLib:
flutter run --flavor develop -t lib/main_dev.dart --no-tree-shake-icons
-
Android:
-
Staging: AppTester (Firebase Distribution):
flutter build apk --flavor staging -t lib/main_stg.dart --no-tree-shake-icons
-
Production (For Play Store):
flutter build appbundle --flavor production -t lib/main.dart --no-tree-shake-icons
-
-
iOS:
-
Production (For Play Store):
flutter build ipa -t lib/main.dart --no-tree-shake-icons
To upload to the App Store either:
- Drag and drop the "build/ios/ipa/*.ipa" bundle into the Apple Transporter macOS app https://apps.apple.com/us/app/transporter/id1450874784
- Run "xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey your_api_key --apiIssuer your_issuer_id". See "man altool" for details about how to authenticate with the App Store Connect API key.
-
-
Windows:
flutter build windows --target=lib/main.dart --no-tree-shake-icons
-
MacOS:
flutter build macos -t lib/main.dart --no-tree-shake-icons
Install create-dmg
brew install create-dmg
Generate DMG
create-dmg \ --volname "SongLib" \ --window-pos 200 120 \ --window-size 800 400 \ --icon-size 100 \ --icon "SongLib.app" 200 190 \ --hide-extension "SongLib.app" \ --app-drop-link 600 185 \ "dist/macos/songlib_1.0.799.dmg" \ "build/macos/Build/Products/Release/SongLib.app"
-
Linux:
Generate the build
flutter build linux -t lib/main.dart --no-tree-shake-icons
Create a deb package
flutter_distributor package --platform linux --targets deb
Or an rpm package
flutter_distributor package --platform linux --targets rpm
-
All the builds:
flutter build appbundle --flavor production -t lib/main.dart --no-tree-shake-icons flutter build apk --flavor production -t lib/main.dart --no-tree-shake-icons flutter build ipa -t lib/main.dart --no-tree-shake-icons flutter build macos -t lib/main.dart --no-tree-shake-icons
Congratulations! You've successfully set up and run or built SongLib. Explore the codebase, make modifications, and contribute to creating a seamless experience for the users. Happy coding!