{"id":21512040,"url":"https://github.com/strvcom/android-academy-2017","last_synced_at":"2026-02-15T14:39:02.637Z","repository":{"id":97727072,"uuid":"96768889","full_name":"strvcom/android-academy-2017","owner":"strvcom","description":null,"archived":false,"fork":false,"pushed_at":"2017-09-12T18:31:00.000Z","size":180,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-11T10:03:18.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/strvcom.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":"2017-07-10T11:15:28.000Z","updated_at":"2022-02-17T08:55:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"29960c54-0c52-44d8-a767-9d5795ab12b1","html_url":"https://github.com/strvcom/android-academy-2017","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/strvcom/android-academy-2017","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strvcom%2Fandroid-academy-2017","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strvcom%2Fandroid-academy-2017/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strvcom%2Fandroid-academy-2017/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strvcom%2Fandroid-academy-2017/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strvcom","download_url":"https://codeload.github.com/strvcom/android-academy-2017/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strvcom%2Fandroid-academy-2017/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29481680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T11:35:25.641Z","status":"ssl_error","status_checked_at":"2026-02-15T11:34:57.128Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-23T22:25:39.642Z","updated_at":"2026-02-15T14:39:02.614Z","avatar_url":"https://github.com/strvcom.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Academy Workshops\n=================\n\n## 1. Tools \u0026 Project structure\n\n- Java\n- Kotlin\n- Android Studio\n- Project setup\n- SDK manager\n- Monitor/DDMS\n- Emulator\n- ADB\n- Gradle\n- Maven\n- Support libraries\n- Manifest\n- Project structure\n- Packages\n- Code formatter\n- Tech stack\n- Templates and utilities\n- Resources, news, dev support\n\n## 2. Activities\n\n- Application class\n- Config class\n- Activity\n- Fragment\n- Lifecycle\n- Context\n\n## 3. Layouts \u0026 Views\n\n- FrameLayout, LinearLayout, RelativeLayout\n- CoordinatorLayout\n- StatefulLayout\n- Basic views (text, button, checkbox, image, edittext, progress, webview)\n- Toolbar, FAB, NavigationView, SwipeRefreshLayout\n- Toast, Snackbar, AlertDialog\n- Intro to RecyclerView\n- Intro to ViewPager\n- Include, merge\n\n## 4. Styles \u0026 Resources\n\n- Theme\n- Style\n- Text appearance\n- Resources (dimens, colors, strings)\n- Drawable (vector, shape, 9-patch)\n- Selector\n- Menu\n\n## 5. Intents \u0026 Permissions \u0026 Notifications\n\n- Bundle, Parcelable\n- Start Activity\n- Implicit Intent\n- Intent filters\n- Deep linking\n- Permissions\n- Notifications\n- Broadcast receiver\n- Intro to SharedPreferences\n\n## 6. Logging \u0026 Debugging\n\n- Monitor\n- Logcat utility\n- Debugger\n- Developer options in Settings menu\n- Tools\n\n## 7. MVVM architecture\n\n- Model, View, ViewModel\n- Responsibilities of layers\n- Handling orientation change\n- Libraries\n\n## 8. Data binding\n\n- Layout file, variables\n- Binding class\n- Events (lambda, method reference)\n- Include\n- Expressions\n- Observable (fields, collections, BaseObservable)\n- BindingAdapter\n- BindingConversion\n- Data binding \u0026 MVVM\n\n## 9. RecyclerView \u0026 ViewPager\n\n- Adapters\n- ViewHolder pattern\n- RecyclerView, LayoutManager\n- ViewPager\n- Generic adapters\n\n## 10. Dialogs\n\n- DialogFragment\n- Basic dialogs (simple, items, single/multi choice, progress, custom)\n- Bottom sheet\n- Data binding in dialog\n- Dialog theme\n- Arguments and result\n\n## 11. Threading \u0026 Background tasks\n\n- Main thread\n- Handler\n- AsyncTask\n- Service\n- IntentService\n\n## 12. RxJava (optional, advanced)\n\n- Basics (observable, special observables, observer)\n- Creators (just, create, from)\n- Operators\n- Schedulers, compose\n- Composite subscription\n- Flowable, backpressure, cold VS hot\n- Subject\n- RxManager, RestRxManager\n- RxBus\n\n## 13. REST\n\n- OkHttp library\n- Interceptors\n- Retrofit library\n- GSON parser library\n- Call manager\n- Network utility\n- Retrofit \u0026 RxJava\n\n## 14. Image processing \u0026 Media\n\n- Glide\n- Binding adapter\n- Picking image from gallery/camera\n- MediaPlayer\n- ExoPlayer\n\n## 15. Database \u0026 Preferences\n\n- ORM (Room, DBFlow, ORMLite)\n- Realm\n- SharedPreferences, PreferenceFragment\n\n## 16. Firebase (optional)\n\n- Web panel\n- Firebase realtime database\n- FCM\n- Firebase \u0026 RxJava\n\n## 17. Map \u0026 Geolocation\n\n- Google APIs Console\n- Maps API\n- Geolocation \n\n## 18. Animations\n\n- Property animations\n- Animations with CoordinatorLayout\n- Activity transitions\n- Page transformer\n\n## 19. Testing\n\n- Unit tests\n- UI tests\n\n## 20. Build \u0026 Deployment\n\n- Keystore\n- Gradle script\n- Build APK\n- Run tests\n- Play Store Developer Console\n- CI\n\n## 21. Best practices \u0026 Guidelines\n\n- Best practices\n- Common mistakes\n- Preventing memory leaks\n- Android Coding Guidelines\n- Google Design Guidelines\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrvcom%2Fandroid-academy-2017","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrvcom%2Fandroid-academy-2017","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrvcom%2Fandroid-academy-2017/lists"}