Coder Social home page Coder Social logo

androiddevnotes / awesome-android-learning-resources Goto Github PK

View Code? Open in Web Editor NEW
1.7K 54.0 258.0 329 KB

馃憮 A curated list of awesome android learning resources for android app developers.

License: Creative Commons Zero v1.0 Universal

Kotlin 100.00%
android kotlin awesome jetpack-android learn-android study-guide learning-resources awesome-list android-kotlin dagger

awesome-android-learning-resources's People

Contributors

adriandleon avatar akm0012 avatar anacoimbrag avatar androiddevnotes avatar arduia avatar bhaveshgoyal182 avatar charankumarbr avatar ddmioto avatar devansh-maurya avatar dkarakay avatar droid-lover avatar ebelinski avatar enes-kayiklik avatar farkadi06 avatar grivos avatar haid-faiz avatar jakesteam avatar kgdobariya avatar kkdroidgit avatar mandatedisrael avatar pratikbutani avatar sharkaboi avatar sourabhsnath avatar srishti-034 avatar starcheek avatar subhipandey avatar tanviroy avatar ujbolivar avatar umairjibran avatar wowgeekyboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-android-learning-resources's Issues

Pull Requests / Contributions are welcomed!

If you want to contribute android learning resources to awesome-android-learning-resources, Pull Requests are welcomed!

If you are a beginner looking for your first contribution to Open Source, I will help you with Pull Request and contributing guide. 馃悾

Feel free to send Pull Requests, fix typos, grammatical mistakes ...

Remove Android Security empty link

  • At Line 55 there is an empty link for Android security.
  • At this time only 'The Mobile Security Testing Guide (MSTG)' is related to security and doesn't make sense to keep it in a separate section.

You should have more basic sorts of projects which are more suitable for beginner-ish learners.

All the projects in this repo are awesome and they seem really promising. However I do have one problem, all of these projects are just way too high level. For a person like me, I don't know how MVVM works or RxJava works and these projects use those kinds of things which are way out of league for me. And sure as hell I should learn those things but right now I want to see the usage of more basic stuff. Either the use of MVVM in more basic and simple ways, or apps that don't use the stuff I don't understand. Like for example a basic app that implements the androix and navigation components. THese are the things beginners might need to see the best practices of instead very advanced features like RxJava and Architectural Patterns. I would like to see apps implement the latest Jetpack libraries and the material design library with best practices. These things are not too high level but they are also very important to learn.

Memory Leak Learning Resources

(Draft)

Setup

Getting Started - LeakCanary

Tutorial

Practical demonstration of identifying Memory Leaks in Mozilla Firefox (Fenix on GitHub)

Shows how to read the "leak trace", how to identify memory leaks.

The Sandbox: LeakCanary - YouTube

General info and what's new in LeakCanary 2

Ask the Expert #2: LeakCanary 2.x is out, track your memory leaks - YouTube

Tools

The Android Profiler 聽|聽 Android Developers - Only Memory section of Profiler is relevant.

LeakCanary

Code

Reproducible Sample of Memory Leak

Run the app in Android Studio.

maxkohne/Android-Memory-Leaks: This is an example of how memory leaks happen with fragments in Android. It also has a solution to the problem.

Notes

Frequent, consistent Garbage Collection in Android Studio Profiler (Memory) is not good.

CoordinatorLayout leaked does not necessarily mean that you should look into the XML code of CoordinatorLayout. Refer to the The Sandbox: LeakCanary - YouTube to see how to read such leak trace.

At times, when using the Android Studio profiler (memory), you may want to disable or comment out LeakCanary dependency from your build gradle file. (Not necessarily).

Different Types of Memory Leak and Reference

The list is not exhaustive.

Note, not all code is tested. But helpful references.

RecyclerView adapter null

fenix/AddonsManagementFragment.kt at 7070bb5607f5ac9fd0825ab21e7abba675f98bdc 路 mozilla-mobile/fenix

How to Fix Memory Leak in RecyclerView (LeakCanary) - YouTube

AlertDialog Memory Leak

florisboard/TypingFragment.kt at 9a146ba2f0040e8cf1652cd21dd358268cda3759 路 florisboard/florisboard

android - Leak Canary detects memory leaks for TabLayout with ViewPager2 - Stack Overflow

Using backing field pattern (when necessary)

The Sandbox: LeakCanary - YouTube

Need to close actionMode if contextual actionMode is showing.

food-recipes/FavoriteRecipesFragment.kt at 3a66c9b796d99cd5926f7743f2699c470d5acbb4 路 ZattWine/food-recipes

setOnRefreshListener null

SkateShare/FeedFragment.kt at ab2d4499b841b6c8cb6ea2f3d261570e8f05b336 路 avhagedorn/SkateShare

searchView.setOnQueryTextListener(null)

GreedyNewsApp/NewsFragment.kt at e3b290a07d53d83a5b5a8dd5fb60e9a6fcf8bd04 路 ShobhitCoder/GreedyNewsApp

drawerHelper.removeDrawerListener(listener)

Tv/MeFragment.kt at 3c22f2baad651c3df53b3615fd6fc28263621a42 路 bytebyte6/Tv

Dismiss Dialog (set to null) and Input Method Manager

NfcDemo/MainActivity.kt at 2cce6dc82fddc18c1c00aa04cdee25b300ecb77a 路 ewgcat/NfcDemo

viewpager2

ViewPager2 internally uses RecyclerView I think, so use the same technique to prevent memory leaks as you would use for RecyclerView adapter.

ViewPager2 holds on to FragmentStateAdapter after detach [151212195] - Visible to Public - Issue Tracker

NavigationComponents-Tutorials/ViewPagerContainerFragment.kt at c2fcaf175fbd99183d424d1281a47275e1101f85 路 SmartToolFactory/NavigationComponents-Tutorials

Do it before super.onDestroyView (!?)

Not sure if before or after nulling the view is preferred. People do either ways.

architecture-components-samples/InflateFragment.kt at main 路 android/architecture-components-samples

Avoid references to the Fragment's Views after onDestroyView() by ianhanniballake 路 Pull Request #785 路 android/architecture-components-samples

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.