Onehour

A time tracking app build using Flutter.

Screens

First Header Second Header
Imgur Imgur
Imgur Imgur
Imgur Imgur
Imgur Imgur

Tech Stack

  • Flutter
  • Flutter Bloc with Hydrated Bloc
  • Firebase
  • Admob

Features

  • Track time for all your task.
  • Offline Support.
  • Social Logins (Google, Facebook)
  • Light & Dark theme support.
  • Ads configured using remote config.

Getting Started

  1. Fork repository and clone your fork locally
  2. Install Flutter 1.7.8
  3. Install Android Studio / IntelliJ / VSCode
  4. Preparing Release for Android
  5. Preparing Release for iOS

Building the project

Android

Missing Key.Properties file

If you try to build the project straight away, you'll get an error complaining that a key.properties file is missing and Exit code 1 from: /Onehour-appp/android/gradlew app:properties:. To resolve that,

  1. Follow this guide to Generate Keystor and then move it to Onehour-appp/android/app

  2. Open Onehour-appp/android and create a new file key.properties and your key info:

storePassword=STORE_PASSWORD
keyPassword=KEY_PASSWORD
keyAlias=key
storeFile=key.jks
  1. Integrate Firebase for Android

  2. Open AndroidManifest.xml and replace ADMOB_ID with your id.

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ADMOB_ID"/>
  1. Open strings.xml and replace 0000000000 with your id.
    <!-- Replace "000000000000" with your Facebook App ID here. -->
    <string name="facebook_app_id">000000000000</string>

    <!--
      Replace "000000000000" with your Facebook App ID here.
      **NOTE**: The scheme needs to start with `fb` and then your ID.
    -->
    <string name="fb_login_protocol_scheme">fb000000000000</string>

IOS

  1. Integrate Firebase for IOS

  2. Open Info.plist replace REVERSED_CLIENT_ID,

	<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLSchemes</key>
			<array>
			    <!--
                              Replace "000000000000" with your Facebook App ID here.
                              **NOTE**: The scheme needs to start with `fb` and then your ID.
                            -->
				<string>fb000000000000</string>
				<!--Replace REVERSED_CLIENT_ID with your googleservice.plist REVERSED_CLIENT_ID-->
				<string>REVERSED_CLIENT_ID</string>
			</array>
		</dict>
	</array>

	<!--Replace 000000000000 with your facebook app id-->
	<key>FacebookAppID</key>
	<string>000000000000</string>

	<!--Replace FACEBOOK_DISPLAY_NAME with your facebook display name -->
	<key>FacebookDisplayName</key>
	<string>FACEBOOK_DISPLAY_NAME</string>

	<!--Replace 00000ADMOB_ID0000000 with your admob id-->
	<key>GADApplicationIdentifier</key>
	<string>ADMOB_ID</string>

GitHub

https://github.com/fayeed/Onehour-app