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

Поделиться
HTML-код
  • Опубликовано: 21 авг 2024

Комментарии • 139

  • @tortoiseshell_cat
    @tortoiseshell_cat 3 года назад +9

    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

  • @markli2171
    @markli2171 2 года назад +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

  • @vengateshm2122
    @vengateshm2122 3 года назад +6

    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!

  • @ChrisAthanas
    @ChrisAthanas 3 года назад

    Best hair in all of Android tutorials

  • @nizamyuseri4058
    @nizamyuseri4058 Год назад

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

  • @mattgraves3709
    @mattgraves3709 3 года назад

    Very nice, Very nice.
    I love the Lackner one stop Android shop for professionals at RUclips

  • @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!👍

  • @murlipatle2705
    @murlipatle2705 3 года назад

    Philipp Lackner you are amazing. you make everything simple

  • @ashar9327
    @ashar9327 3 года назад +1

    Best teacher 💪

  • @xD-saleem
    @xD-saleem 3 года назад +2

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

  • @preenxus3425
    @preenxus3425 3 года назад

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

  • @icodethis
    @icodethis 2 года назад

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

  • @kisan_thapa
    @kisan_thapa 3 года назад +2

    Really informative video. Thanks ❤

  • @michaelsanders9147
    @michaelsanders9147 7 месяцев назад

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

  • @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.

  • @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.

  • @user-wr9dr7po2v
    @user-wr9dr7po2v 2 года назад

    thanks boss .. you changed my life

  • @JosueLopes
    @JosueLopes 3 года назад +1

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

  • @trending_tech1
    @trending_tech1 Год назад

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

  • @Rafael-hk9pg
    @Rafael-hk9pg 2 года назад +1

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

  • @buzfinda276
    @buzfinda276 11 месяцев назад

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

  • @iftak01
    @iftak01 2 года назад

    AMAZING much needed video bud!

  • @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 ?.

  • @androidcodingwithkh7896
    @androidcodingwithkh7896 3 года назад +1

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

  • @flembrane5265
    @flembrane5265 2 года назад

    Very helpful video for a new android developer. Thanks!

  • @techtutorial2424
    @techtutorial2424 Год назад

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

  • @minhtuhuynhcao4782
    @minhtuhuynhcao4782 2 года назад

    Sweet, smooth

  • @MattCM89
    @MattCM89 2 года назад

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

  • @sraldous
    @sraldous 11 месяцев назад

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

  • @yashgarg5992
    @yashgarg5992 2 года назад

    Very very clearly explained everything. Thanks a lot

  • @simranpreetsingh1861
    @simranpreetsingh1861 Год назад

    what a lovely video very insightful

  • @gihanpathirage
    @gihanpathirage 2 года назад

    You are the best! Thank you for this.

  • @emranulislam6469
    @emranulislam6469 2 года назад

    Great Video Brother

  • @dbtechprojects2392
    @dbtechprojects2392 3 года назад

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

  • @ioannistzavaras6873
    @ioannistzavaras6873 3 года назад

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

  • @Jake-uj8fy
    @Jake-uj8fy 3 года назад

    This is so enough, nice stuff indeed. 🥂 mate

  • @tiamabderezai5374
    @tiamabderezai5374 3 года назад

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

  • @theeuropeanperspective3391
    @theeuropeanperspective3391 2 года назад

    Excellent tutorial, thanks!

  • @omarguevara536
    @omarguevara536 2 года назад

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

  • @kafychannel
    @kafychannel Год назад

    useful thanks so much!

  • @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.

  • @mustafaammar551
    @mustafaammar551 3 года назад

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

  • @mockingspyhd6099
    @mockingspyhd6099 3 года назад

    Wooow, perfect guy! thank you so much!

  • @bboydarknesz
    @bboydarknesz 3 года назад

    Damn you are best !

  • @xD-saleem
    @xD-saleem 3 года назад +1

    amazing

  • @dailybrainexercises
    @dailybrainexercises 2 года назад

    Thank you so much

  • @stanislavomelchenko5271
    @stanislavomelchenko5271 2 года назад

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

  • @pemmasanirajesh6965
    @pemmasanirajesh6965 3 года назад +1

    It's a great explanation compared to some proguard videos

  • @hamzaboi6875
    @hamzaboi6875 3 года назад

    you are so cool
    keep going bro

  • @vishalthapa1440
    @vishalthapa1440 3 года назад +1

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

  • @jarvis2913
    @jarvis2913 3 года назад

    Very helpful video

  • @neerajpant4071
    @neerajpant4071 3 года назад

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

  • @niranz7745
    @niranz7745 2 года назад

    Amazing.

  • @funnymoment9164
    @funnymoment9164 3 года назад

    Thanks

  • @blackballization
    @blackballization 2 года назад

    Thank you

  • @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 ❤️✌️

  • @VICMAGUCAS
    @VICMAGUCAS 2 года назад

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

  • @shivamsethi3829
    @shivamsethi3829 3 года назад

    Great topic

  • @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?

  • @mostafahosseini2944
    @mostafahosseini2944 2 года назад

    thank you

  • @raintech7053
    @raintech7053 Год назад

    Arigato 😊

  • @makasiparsad
    @makasiparsad 3 месяца назад

    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?

  • @VINAYCHOWDARY-uo1zs
    @VINAYCHOWDARY-uo1zs 2 года назад

    make a video to use in spring boot application for jars

  • @armandoavila4615
    @armandoavila4615 3 года назад

    Thank you!

  • @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.

  • @mattgraves3709
    @mattgraves3709 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

    • @mattgraves3709
      @mattgraves3709 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 года назад

      @@mattgraves3709 Thanks a lot for the kind words, Matt, appreciate all your comments and support!

  • @manishgautam2424
    @manishgautam2424 Год назад

    Good videos

  • @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 🙏

  • @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.

  • @ampo2004
    @ampo2004 3 года назад +1

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

  • @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🌹🌹

  • @dororodororo8200
    @dororodororo8200 3 года назад

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

  • @navdeepagrawal9507
    @navdeepagrawal9507 3 года назад

    Philipp I think your forgot to explain "-dontwarn".

  • @nicolasfelipe1
    @nicolasfelipe1 2 года назад

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

  • @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.

  • @raespim
    @raespim 2 года назад

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

  • @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🤔

  • @danielmartinspiridione6559
    @danielmartinspiridione6559 3 года назад

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

  • @ravi_sorathiya
    @ravi_sorathiya 3 года назад

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

  • @aysyk
    @aysyk 4 месяца назад

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

  • @manojrai397
    @manojrai397 2 года назад

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

  • @SoulCalmingWithAzooz
    @SoulCalmingWithAzooz 10 месяцев назад

    How about Flutter applications?

  • @muhamadannur2859
    @muhamadannur2859 Год назад

    i found here, thanks Philipp
    ask, Tell about Jiagu360?

  • @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?

  • @sacrificeforstars9479
    @sacrificeforstars9479 3 года назад

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

  • @onlinemarketing9865
    @onlinemarketing9865 Год назад

    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..

  • @shivayogihiremath1046
    @shivayogihiremath1046 3 года назад

    "This App Bundle contains native code, and you've not uploaded debug symbols. We recommend that you upload a symbol file to make your crashes and ANRs easier to analyse and debug." whats this error?.. where I will get that file ?

  • @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?

  • @arpanlayek6405
    @arpanlayek6405 3 года назад

    What is Bloc class and Cubit Class?

  • @GeorgeMachibya
    @GeorgeMachibya 2 года назад

    where is the safe place to initialize API_KEY

  • @kendyoccean1714
    @kendyoccean1714 2 года назад

    How can I use mapping file through git to decrypt it

  • @cnx8377
    @cnx8377 3 года назад

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

  • @algo_chronicles
    @algo_chronicles 3 года назад

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

  • @zachariamwalwama
    @zachariamwalwama 2 года назад

    wooooooww,

  • @silientlips
    @silientlips 2 года назад +1

    Proguard is not enough to secure your app. They can easily reverse-engineer your app. I hope you will create a tutorial more than this soon.

    • @PhilippLackner
      @PhilippLackner  2 года назад

      In terms of reverse engineering it's all you can do. You can't prevent that of course

  • @TheNoobDhruv
    @TheNoobDhruv Год назад

    I use proguard but app sizr not reduced

  • @jorgebrandonvargasarreola150
    @jorgebrandonvargasarreola150 3 года назад

    Type a.a.a.b.b.a is defined multiple times: help me, please