Shrink, Optimize and Secure Your App With R8 & ProGuard - Full Guide

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ • 139

  • @tortoiseshell_cat
    @tortoiseshell_cat 3 роки тому +11

    man i swear i start my project by watching ur video and now i end it with this tutorial R8 & ProGuard

  • @sreshthamehrotra9977
    @sreshthamehrotra9977 3 роки тому +3

    Best channel for learning Android Dev. Thanks !

  • @oguzhanarslan9714
    @oguzhanarslan9714 3 роки тому +35

    This man really makes complex things simple , also wondering that would you make a tutorial about gradle ?

    • @PhilippLackner
      @PhilippLackner  3 роки тому +2

      Thanks a lot! Not planned atm, but maybe in future

  • @ChrisAthanas
    @ChrisAthanas 3 роки тому

    Best hair in all of Android tutorials

  • @vishrutgoyani8071
    @vishrutgoyani8071 3 роки тому

    I knew it. But it's the perfect Video to understand all of the Proguard & Obfuscating for beginners.
    Great work bro, Keep it up!👍

  • @markli2171
    @markli2171 3 роки тому +4

    Love the way you teach one thing at time with detail. we want to see more advance and small suject like how to use android studio profil tool to detect memory leak, how to use some android studio plugins, everything about gradle, materiel design

  • @nizamyuseri4058
    @nizamyuseri4058 Рік тому

    i've successfully obfuscate my code because of your video thank you

  • @vengateshm2122
    @vengateshm2122 3 роки тому +7

    Though these concepts are familiar to me it gives me a quick recap for my interview preparation.
    Thanks Pl.

  • @ArdianMaulanaEffendi
    @ArdianMaulanaEffendi 3 роки тому +3

    Thank you very much, Philipp!
    I finally found out the problem why my login function didn't work. It was because of that obfuscation 🤣
    Thanks for clearing that up!

  • @matt-g-recovers
    @matt-g-recovers 3 роки тому

    Very nice, Very nice.
    I love the Lackner one stop Android shop for professionals at UA-cam

  • @murlipatle2705
    @murlipatle2705 3 роки тому

    Philipp Lackner you are amazing. you make everything simple

  • @icodethis
    @icodethis 3 роки тому

    Your "data classes" example saved my time. It was exactly what I was looking for. Thank you.

  • @preenxus3425
    @preenxus3425 3 роки тому

    Many thanks for your video. This is the best video on UA-cam about R8 / Proguard!!! Very helpful

  • @nikhiltambe7204
    @nikhiltambe7204 3 роки тому +2

    Thanks for the recap PL. In addition, the older version of Play Console had an option to upload the mapping.txt file along with the release build which de-obfuscates any crashes/ANR reported. I haven't used the new console yet, but I hope it will still be there somewhere.

  • @trending_tech1
    @trending_tech1 Рік тому

    A brilliant way to deliver a complex topic. Hats off to you man 🙂

  • @تطبيقالطفلالمفقود

    thanks boss .. you changed my life

  • @Rafael-hk9pg
    @Rafael-hk9pg 3 роки тому +1

    Thanks for the video. Could you make a series of how to release your app?

  • @iftak01
    @iftak01 3 роки тому

    AMAZING much needed video bud!

  • @xD-saleem
    @xD-saleem 3 роки тому +2

    i learned a lot from you and keeping learning from you. thanks for sharing your knowledge with us.

  • @buzfinda276
    @buzfinda276 Рік тому

    Thanks alot man, you made my work easier. I logged my email just to like and comment👍

  • @michaelsanders9147
    @michaelsanders9147 10 місяців тому

    Very well explained. I was having exactly this problem with JSON.

  • @emranulislam6469
    @emranulislam6469 2 роки тому

    Great Video Brother

  • @JosueLopes
    @JosueLopes 3 роки тому +1

    Thank you, I was looking for this these days!!! :D

  • @flembrane5265
    @flembrane5265 3 роки тому

    Very helpful video for a new android developer. Thanks!

  • @kisan_thapa
    @kisan_thapa 3 роки тому +2

    Really informative video. Thanks ❤

  • @AbdullahKhan-uw2wj
    @AbdullahKhan-uw2wj 3 роки тому +1

    Bro u are the best youtuber for app developing and error fixing. Best 💯👍thanks bro and can you tell me something in which I contact you.

  • @ultimatedev8779
    @ultimatedev8779 3 роки тому +5

    I really like the way you explain things just keeping them simple and straight. Can you please do a video regarding the Android App bundle which is used for updating the application in the playstore ?.

  • @VikashSingh-dn7kk
    @VikashSingh-dn7kk 2 роки тому +3

    Why to backup the mapping file? If Google Play automatically translate the obfuscated code as the Android App Bundle contains the mapping file.

  • @androidcodingwithkh7896
    @androidcodingwithkh7896 3 роки тому +1

    keep it up. very informative and detailed .GOOD JOB!!

  • @ashar9327
    @ashar9327 3 роки тому +1

    Best teacher 💪

  • @MattCM89
    @MattCM89 2 роки тому

    Really great video! You cover some of the key gotchas and then go in depth in such a short video. 👏👏

  • @simranpreetsingh1861
    @simranpreetsingh1861 Рік тому

    what a lovely video very insightful

  • @gihanpathirage
    @gihanpathirage 3 роки тому

    You are the best! Thank you for this.

  • @Jake-uj8fy
    @Jake-uj8fy 3 роки тому

    This is so enough, nice stuff indeed. 🥂 mate

  • @techtutorial2424
    @techtutorial2424 Рік тому

    Excellent explanation.............

  • @yashgarg5992
    @yashgarg5992 2 роки тому

    Very very clearly explained everything. Thanks a lot

  • @dbtechprojects2392
    @dbtechprojects2392 3 роки тому

    Very detailed video, will be releasing my first app in a few months so this will help alot, thanks :)

  • @sraldous
    @sraldous Рік тому

    Very helpful, explained well and easy to understand. Thank you!

  • @vishalthapa1440
    @vishalthapa1440 3 роки тому +1

    make a video on sha-1 and sha-256 .what are these and why we need them?

  • @hamzaboi6875
    @hamzaboi6875 3 роки тому

    you are so cool
    keep going bro

  • @ioannistzavaras6873
    @ioannistzavaras6873 3 роки тому

    Nice job bro! I really enjoy you explanations and your teaching style! Thank you 👍👍👍

  • @theeuropeanperspective3391
    @theeuropeanperspective3391 2 роки тому

    Excellent tutorial, thanks!

  • @tiamabderezai5374
    @tiamabderezai5374 3 роки тому

    Your videos are as always so informative, clear, and concise. Einfach ausgezeichnet! :)

  • @mockingspyhd6099
    @mockingspyhd6099 3 роки тому

    Wooow, perfect guy! thank you so much!

  • @makasiparsad
    @makasiparsad 7 місяців тому

    Regarding "data class ..." would one need to not obfuscate every method & reference variable (such as LiveData variables) that makes use of the dataclasses or just not obfuscate the dataclasses themselves?

  • @omarguevara536
    @omarguevara536 3 роки тому

    Excellent video, thank you very much, I hope and there is second part of the video

  • @safionweb
    @safionweb 2 місяці тому

    Amazing 🔥

  • @mustafaammar551
    @mustafaammar551 3 роки тому

    Thank you very much Bro
    Very cool video
    wish you all the best ❤❤❤👍👍👍👍

  • @stanislavomelchenko5271
    @stanislavomelchenko5271 2 роки тому

    Спасибо тебе. Всё понятно и доступно объяснил. You have awesome pronounce.

  • @ampo2004
    @ampo2004 3 роки тому +1

    very good, as always. Do you have something about signing apps and playstore upload?

  • @pemmasanirajesh6965
    @pemmasanirajesh6965 3 роки тому +1

    It's a great explanation compared to some proguard videos

  • @minhtuhuynhcao4782
    @minhtuhuynhcao4782 3 роки тому

    Sweet, smooth

  • @imsherry7225
    @imsherry7225 3 роки тому

    Hi I just started watching your channel , new to android development so i am watching your android fundamental series and it's awesome and updated, I really feel connection and the flow so plz let me know, what do u recommend next ? better be a playlist or topics thanks...

    • @PhilippLackner
      @PhilippLackner  3 роки тому

      I'd watch the coroutine playlist afterwards and then it's up to you. Whatever is interesting for you

    • @imsherry7225
      @imsherry7225 3 роки тому

      @@PhilippLackner Thanks Phil It's Really Helping ❤️✌️

  • @aysyk
    @aysyk 7 місяців тому

    how can i use proguard? Should I set useProguard true in app gradle or android.enableR8=false in gradle properties

  • @dailybrainexercises
    @dailybrainexercises 3 роки тому

    Thank you so much

  • @bboydarknesz
    @bboydarknesz 3 роки тому

    Damn you are best !

  • @kafychannel
    @kafychannel Рік тому

    useful thanks so much!

  • @mehdiparsaei1867
    @mehdiparsaei1867 2 роки тому +1

    As you mentioned, we should avoid obfuscation for DTO classes cause of the serialization.
    How if we use @SerializedName("...") for any fields? I think we don't have to exclude them anymore.

  • @zakariahossain5149
    @zakariahossain5149 3 роки тому

    I really like your presentation/explanation style and your explanation is very very well.
    BTW, how many hours do you research for creating a new video?

  • @VINAYCHOWDARY-uo1zs
    @VINAYCHOWDARY-uo1zs 2 роки тому

    make a video to use in spring boot application for jars

  • @ravi_sorathiya
    @ravi_sorathiya 3 роки тому

    Which plugin you have used in your android studio that provides create new classes such as data class etc......??

  • @jarvis2913
    @jarvis2913 3 роки тому

    Very helpful video

  • @neerajpant4071
    @neerajpant4071 3 роки тому

    Absolutely brillant.👍👍
    If possible ,Can you make video on dsl kotlin

  • @kirubelberhanu4698
    @kirubelberhanu4698 2 роки тому

    I have firebase app with RecyclerView but when I release it into paly store, the app will crash... how to set proground for this problem?

  • @sacrificeforstars9479
    @sacrificeforstars9479 3 роки тому

    what are these at 09:31 , cubit class and bloc class? is this flutter related stuff or something else.

  • @expense-moneytracking6577
    @expense-moneytracking6577 3 роки тому

    I have tried this option on my project. But unfortunately, it is won't be working very well. For an example of my login activity, R8 has renamed all my XML id into another name that could not pass data through to the form validate and API request.

  • @matt-g-recovers
    @matt-g-recovers 3 роки тому +1

    If you follow this up with deployment that would be awesome.
    Phillipp do any of your app playlists deploy to play?
    Would love to see a complete app playlist on Continuous integration or Continuous deployment setup that has automated test suite

    • @PhilippLackner
      @PhilippLackner  3 роки тому +3

      still learning about CI/CD myself

    • @matt-g-recovers
      @matt-g-recovers 3 роки тому

      @@PhilippLackner I know it's not for everyone, since many people will not be doing this on at scale or with a large team of people. However I would bet a good amount of people would benefit from them.
      I also like robotics and automation in the physical world so finding a way to automate the build release process is cool, even cooler if you automate the test suite as well as the deployment because it takes out the possibility for human error.
      I think you will enjoy learning about it Phillipp, even if it doesn't end up on the channel, I think you will have good time with it.
      Thanks again for all the great videos!
      You have seriously changed the game for many people!

    • @PhilippLackner
      @PhilippLackner  3 роки тому

      @@matt-g-recovers Thanks a lot for the kind words, Matt, appreciate all your comments and support!

  • @SoulCalmingWithAzooz
    @SoulCalmingWithAzooz Рік тому

    How about Flutter applications?

  • @xD-saleem
    @xD-saleem 3 роки тому +1

    amazing

  • @mr-re1ax
    @mr-re1ax 2 роки тому

    I haven't fill proguard rule and uploaded my app to the market with minify = true. But haven't face any crashes🤔

  • @onlinemarketing9865
    @onlinemarketing9865 2 роки тому

    Sir,, Please help me.. I have faced a problem..
    My app previous update version was only 10
    megabyte. But now I have added some features,, the size jumped to 25 MB, which is not possible because I have added very small amount of code... When I cancled all and go to previous version by github using version control; it also showing 25MB in released version,,, which was 10MB..

  • @manojrai397
    @manojrai397 2 роки тому

    if i use zoom sdk and make magnify true is also change name to zoom library file at time of release

  • @VICMAGUCAS
    @VICMAGUCAS 2 роки тому

    Gracias, me sirvió mucho, excelente explicación....

  • @danielmartinspiridione6559
    @danielmartinspiridione6559 3 роки тому

    Excellent! Do you know any rules to keep the classes dynamically generated by ViewBinding?

  • @dororodororo8200
    @dororodororo8200 3 роки тому

    Hi ) could you show more examples with R8 and ProGuard, like some small, real project?)))

  • @VVLGANESHK
    @VVLGANESHK 3 роки тому

    How can I test app bundles in phone.....those are not APK to install right?

  • @shivamsethi3829
    @shivamsethi3829 3 роки тому

    Great topic

  • @nicolasfelipe1
    @nicolasfelipe1 2 роки тому

    my app working perfectly on many devices, after "minifyEnabled true" even the mainactivity cant open

  • @kendyoccean1714
    @kendyoccean1714 2 роки тому

    How can I use mapping file through git to decrypt it

  • @arpanlayek6405
    @arpanlayek6405 3 роки тому

    What is Bloc class and Cubit Class?

  • @Sahin_Safi
    @Sahin_Safi 3 роки тому

    how to check r8 app working fine or not?

  • @Android-sb8uo
    @Android-sb8uo 3 роки тому +2

    Does all the comments inside your classes would be obfuscated too?

    • @PhilippLackner
      @PhilippLackner  3 роки тому +1

      No there is no reason to include comments in a release build anyways, so they will just be removed

    • @Android-sb8uo
      @Android-sb8uo 3 роки тому

      @@PhilippLackner alright, noted on this. Thank you.

  • @algo_chronicles
    @algo_chronicles 3 роки тому

    I dont know why but after this while generating signed apk ,,,i am getting stackoverflow error ,,,

  • @raespim
    @raespim 3 роки тому

    Hi Philipp! Thanks for the knowledge! I have a question: Is there any way to find out which classes the R8 compiler is breaking?

  • @cnx8377
    @cnx8377 3 роки тому

    Bro I try multiscreen support using your tutorial but screen size set and not resize component bro.. How to set that

  • @sagarchincholkar7557
    @sagarchincholkar7557 3 роки тому

    what about the inner static classes (Like u said as Model class of josn ) which are inside the class which we have added pro Guard rule for not obfuscate this calss .*
    does this means variable name which are in inner class also not obfuscated?

  • @OriginRow
    @OriginRow 3 роки тому

    This is absolutely helpful..... could you please make tutorial on "Play Feature Delivery" which I am making 3D resources based app development. And I am beginner for app development in android studio.There are four types in it like Install time delivery, on-demand delivery, conditional delivery and instant delivery. First two are useful 🙏

  • @masterai2024
    @masterai2024 2 роки тому

    Can this Work for Aide ?

  • @blackballization
    @blackballization 3 роки тому

    Thank you

  • @armandoavila4615
    @armandoavila4615 3 роки тому

    Thank you!

  • @skarbanan
    @skarbanan Рік тому

    What about yguard?

  • @sonusaini-sz2sf
    @sonusaini-sz2sf 3 роки тому

    App get crash in release build when hit api

  • @GeorgeMachibya
    @GeorgeMachibya 3 роки тому

    where is the safe place to initialize API_KEY

  • @niranz7745
    @niranz7745 3 роки тому

    Amazing.

  • @VVLGANESHK
    @VVLGANESHK 3 роки тому

    Will it work for Augmented Reality ARCore app? Is it possible to implement it? Will my app size shirnks? Bcoz 3D models are huge. Already I am stuck here by developing app

  • @Alchemist10241
    @Alchemist10241 2 роки тому

    What if we declare a SerializedName for our JSON fields like this? Do we have to declare a rule in proguard file?
    data class User(
    @Expose
    @SerializedName("email")
    val email:String? = null,
    @Expose
    @SerializedName("username")
    val username:String? = null,
    )

  • @snooringcode6594
    @snooringcode6594 3 роки тому

    how to upload the mapping.txt file along with app bundle to play console.

  • @devetips
    @devetips 3 роки тому +1

    Nice content well done man. Could you please talk about ci/cd such as fastlane and how to integrate it with github actions and google play .thanks in advance🌹🌹

  • @funnymoment9164
    @funnymoment9164 3 роки тому

    Thanks

  • @TheNoobDhruv
    @TheNoobDhruv Рік тому

    I use proguard but app sizr not reduced