{"id":21222233,"url":"https://github.com/lostintime/android-starter","last_synced_at":"2025-03-15T01:16:58.238Z","repository":{"id":148217446,"uuid":"74273965","full_name":"lostintime/android-starter","owner":"lostintime","description":"Android Application bootstrap sample using https://kotlinlang.org/.","archived":false,"fork":false,"pushed_at":"2016-12-18T10:40:30.000Z","size":99,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T17:14:15.041Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lostintime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-20T12:55:11.000Z","updated_at":"2016-11-20T13:06:15.000Z","dependencies_parsed_at":"2023-05-19T11:00:14.764Z","dependency_job_id":null,"html_url":"https://github.com/lostintime/android-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostintime%2Fandroid-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostintime%2Fandroid-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostintime%2Fandroid-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostintime%2Fandroid-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lostintime","download_url":"https://codeload.github.com/lostintime/android-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243668234,"owners_count":20328042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T22:42:19.682Z","updated_at":"2025-03-15T01:16:57.839Z","avatar_url":"https://github.com/lostintime.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"AndroidStarter\n==============\n\nAndroid Application bootstrap sample using [Kotlin](https://kotlinlang.org/).\n\n\n## What's Inside\n\nSample application with:\n\n  * Kotlin and kapt (annotation processing) configuration\n  * [Fabric](https://fabric.io) configuration (Crashlytics)\n  * Basic [Dagger2](https://google.github.io/dagger/) DI structure implementation \n  * Sample [Retrofit](https://github.com/square/retrofit) API definition\n  * [Moshi](https://github.com/square/moshi) and [Moshi-JsonApi](https://github.com/kamikat/moshi-jsonapi) configuration\n  * Sample Identification service (generating persistent UUID for every install)\n  * Sample tests using [kotlintest](https://github.com/kotlintest/kotlintest)\n  * And few other useful dependencies: \n    * [RxJava2](https://github.com/ReactiveX/RxJava)\n    * [RxAndroid2](https://github.com/ReactiveX/RxAndroid)\n    * [OkHttp](https://github.com/square/okhttp)\n    * [Tape](https://github.com/square/tape)\n    * [Joda Time](http://www.joda.org/joda-time/)\n  \n\n## Getting Starting\n\nThere are few steps should be done before running this project\n\n\n### Get the Code\n\n`git clone https://github.com/lostintime/android-starter.git`\n\n### Import project in Android Studio\n\nWhile importing file from gradle file - Android Studio will create \na required `local.properties` file in project root folder.\n \nIt will contain something like this:\n\n    ## This file is automatically generated by Android Studio.\n    # Do not modify this file -- YOUR CHANGES WILL BE ERASED!\n    #\n    # This file must *NOT* be checked into Version Control Systems,\n    # as it contains information specific to your local configuration.\n    #\n    # Location of the SDK. This is only used by Gradle.\n    # For customization when using a Version Control System, please read the\n    # header note.\n    #Sun Nov 20 09:38:17 EET 2016\n    ndk.dir=~/android-sdk-macosx/ndk-bundle\n    sdk.dir=~/android-sdk-macosx\n    \n\n\n### Generate Signing Certificates\n\nMore details about signing android apps you can find in [Sign Your App](https://developer.android.com/studio/publish/app-signing.html)\nandroid studio documentation section, here I'll list commands to be executed (in project root folder):\n\n__Generate Debug Signing (replace passwords and key alias with yours):__\n\n    keytool -genkey -v -keystore ./certificates/starter-debug-key.keystore \\\n        -storepass \u003cstore password here\u003e \\\n        -keypass \u003ckey password here\u003e \\\n        -alias \u003ckey alias, ex: starter_debug_key\u003e \\\n        -keyalg RSA -keysize 2048 -validity 10000\n\n__You should fill al certificate fields, ex:__\n\n    What is your first and last name?\n      [Unknown]:  Lostintime\n    What is the name of your organizational unit?\n      [Unknown]:  IT\n    What is the name of your organization?\n      [Unknown]:  NA        \n    What is the name of your City or Locality?\n      [Unknown]:  Chisinau \n    What is the name of your State or Province?\n      [Unknown]:  Chisinau\n    What is the two-letter country code for this unit?\n      [Unknown]:  MD\n    Is CN=Lostintime, OU=IT, O=NA, L=Chisinau, ST=Chisinau, C=MD correct?\n      [no]:  yes\n    \n    Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days\n        for: CN=Lostintime, OU=IT, O=NA, L=Chisinau, ST=Chisinau, C=MD\n    [Storing ./certificates/starter-debug-key.keystore]\n\n\n\n__Then do the same for release signing:__ \n\n    keytool -genkey -v -keystore ./certificates/starter-release-key.keystore \\\n        -storepass \u003cstore password here\u003e \\\n        -keypass \u003ckey password here\u003e \\\n        -alias \u003ckey alias, ex: starter_release_key\u003e \\\n        -keyalg RSA -keysize 2048 -validity 10000\n    \n    \n__... and details:__ \n\n    What is your first and last name?\n      [Unknown]:  Lostintime\n    What is the name of your organizational unit?\n      [Unknown]:  IT\n    What is the name of your organization?\n      [Unknown]:  NA\n    What is the name of your City or Locality?\n      [Unknown]:  Chisinau\n    What is the name of your State or Province?\n      [Unknown]:  Chisinau\n    What is the two-letter country code for this unit?\n      [Unknown]:  MD\n    Is CN=Lostintime, OU=IT, O=NA, L=Chisinau, ST=Chisinau, C=MD correct?\n      [no]:  yes\n    \n    Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days\n        for: CN=Lostintime, OU=IT, O=NA, L=Chisinau, ST=Chisinau, C=MD\n    [Storing ./certificates/starter-release-key.keystore]\n\n\n### Configure Signing\n\nMake a copy of `keystore.sample.properties` at `keystore.properties` and \nupdate fields with values you provided on previous step, while generating certificates\n\n__Never commit your certificates and credentials (`./keystore.properties` and `./certificates/*.keystore`)!__\n\n\n\n### Configure Fabric\n\nIn order to use Crashlytics and Beta for app distribution - \nSignup first for an Fabric account: [https://fabric.io/sign_up](https://fabric.io/sign_up)\n\nMake a copy of `app/fabric.sample.properties` at `app/fabric.properties`\n\nThen on your [settings page](https://fabric.io/settings/organizations) - select organization\n you want to add your app to and from page header - get `API Key` and `Build secret` and\n update config values in `app/fabric.properties`.\n\n\n### Building the app\n\nTo build the app and install to attached device run: `./gradlew installPreviewDebug`.\n\nBy default Crashlytics is enable only for `release` configuration, \nso Fabric app will be registered only when you run release build first time. \n\n\n## Next Steps\n\nNow we're ready to do our custom changes. Start with renaming \nbase package (from `com.example.starter`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flostintime%2Fandroid-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flostintime%2Fandroid-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flostintime%2Fandroid-starter/lists"}