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

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

КОМЕНТАРІ • 140

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

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

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

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

    Best channel for learning Android Dev. Thanks !

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

  • @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 UA-cam

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

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

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

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

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

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

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

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

    Best hair in all of Android tutorials

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

    Philipp Lackner you are amazing. you make everything simple

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

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

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

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

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

    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

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

    Really informative video. Thanks ❤

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

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

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

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

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

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

  • @safionweb
    @safionweb День тому

    Amazing 🔥

  • @user-wr9dr7po2v
    @user-wr9dr7po2v 2 роки тому

    thanks boss .. you changed my life

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

    amazing

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

    Very helpful video for a new android developer. Thanks!

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

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

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

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

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

    Best teacher 💪

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

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

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

    Very very clearly explained everything. Thanks a lot

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

    AMAZING much needed video bud!

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

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

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

    You are the best! Thank you for this.

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

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

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

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

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

    It's a great explanation compared to some proguard videos

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

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

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

    what a lovely video very insightful

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

    Sweet, smooth

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

    Thank you so much

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

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

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

    useful thanks so much!

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

    Excellent tutorial, thanks!

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

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

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

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

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

    This is so enough, nice stuff indeed. 🥂 mate

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

    Thanks

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

    Wooow, perfect guy! thank you so much!

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

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

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

    Great Video Brother

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

    Thank you

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

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

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

    Damn you are best !

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

    you are so cool
    keep going bro

  • @makasiparsad
    @makasiparsad 4 місяці тому

    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?

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

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

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

    Amazing.

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

    Arigato 😊

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

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

    Very helpful video

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

    Great topic

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

  • @aysyk
    @aysyk 4 місяці тому

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

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

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

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

    make a video to use in spring boot application for jars

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

    Thank you!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    How can I use mapping file through git to decrypt it

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

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

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

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

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

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

    Good videos

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

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

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

    How about Flutter applications?

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

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

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

    App get crash in release build when hit api

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

    THANK YOU VERY MUCH !!!!! ❤🧡💛💚💙💜🤎🤍

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

    how to check r8 app working fine or not?

  • @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,
    )

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

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

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

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

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

    I use proguard but app sizr not reduced