Your SlideShare is downloading. ×
0
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Gradle + Google I/O 2014 remarks
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gradle + Google I/O 2014 remarks

727

Published on

Published in: Mobile, Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
727
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
23
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Collision, speedrun,
  • Can run on IDE, as well as on Build Server;
    New version of Android Studio (Beta, 0.8.1);
    Groovy is like Java;
    We can plug-in(to) any stage of a build process through tooling APIs
  • different sign
  • Move stuff Manifest -> gradle
  • Move stuff Manifest ->
  • consists of properties that are automatically parsed and provided in our build.gradle files
  • Move stuff Manifest ->
  • topmost build.gradle file;
    it’s boring, provided by IDE/AS;
  • A lot of things happen in this file
  • since 0.8.0 there’s new plugin’s naming nomenclature
  • no need to repeat the same stuff across different manifests
  • where you’d put your signing
  • optional (even when we’re using flavors)
    BuildConfig available as static variables in BuildConfig object
  • split it into multiple slides with animated examples:
    Buttons,
    progress bars,
    paper layouts,
    8dp grid,
    improved animation curves,
    webM -> gif: https://cloudconvert.org/webm-to-gif

    google.com/design/spec

    developer’s approch: https://www.youtube.com/watch?v=x5-ntYM_2UY
    http://developer.android.com/preview/material/get-started.html
  • It takes time for users to find around in a new view
  • Let’s just ignore support library altogether for now
  • colorPrimary, colorAccent, tintMode (generic icons transformed to requested color)
  • Transcript

    • 1. Do you speak Gradle? +Damian Mee @meeDamian
    • 2. So, what’s gradle? ● It’s a build system ● Based on Groovy ● Extensible (plugins!) ● Introduced to Android with Android Studio ● No support for NDK (yet)
    • 3. CHEERFUL OFFTOP Developers in Belarus can now publish PAID APPS to Play Store :-)
    • 4. Variants ● Build Type (debug or release) ● Product Flavor (paid, free, whitelabel) ● Multi-APK Splits (ARM, x86, MIPS) COMING SOON
    • 5. Enough bla bla bla ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | |-- otherFlavor | |-- build.gradle |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 6. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 7. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 8. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 9. |-- settings.gradle include ‘:app’
    • 10. include ‘:app’, ‘:FloatingLabel’ |-- settings.gradle (with library projects) ProjectHome +-- app +-- FloatingLabel | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 11. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 12. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 13. |-- gradle.properties STORE_FILE=/home/mee/dev/android/keys/datKey STORE_PASSWORD=superSecretPassword KEY_ALIAS=projecthome KEY_PASSWORD=unbreakabalePassword OUTPUT_DIR=/home/mee/dev/android/binaries/ProjectHome PARSE_KEY_PUBLISHER=NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
    • 14. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 15. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 16. ProjectHome |-- app | |-- src | | |-- main | | | +-- java | | | +-- res | | | |-- AndroidManifest.xml | | | | | +-- otherFlavor | | | |-- build.gradle | |-- build.gradle |-- gradle.properties |-- settings.gradle
    • 17. apply plugin: 'com.android.application' android { compileSdkVersion 'android-L' buildToolsVersion "20.0" defaultConfig { applicationId 'pl.d30.goodnotes' minSdkVersion 15 targetSdkVersion 'L' versionCode 1 versionName '1.0' } // ...
    • 18. apply plugin: 'com.android.application' android { compileSdkVersion 'android-L' buildToolsVersion "20.0" defaultConfig { applicationId 'pl.d30.goodnotes' minSdkVersion 15 targetSdkVersion 'L' versionCode 1 versionName '1.0' } // ...
    • 19. apply plugin: 'com.android.application' android { compileSdkVersion 'android-L' buildToolsVersion "20.0" defaultConfig { applicationId 'com.meedamian.projecthome' minSdkVersion 15 targetSdkVersion 'L' versionCode 1 versionName '1.0' } // ...
    • 20. // ... buildTypes { release { // here’s where signing code would go } } productFlavors { otherFlavor { // flavor-specific configuration, ex: buildConfigField "String", "PARSE_KEY", PARSE_KEY_PUBLISHER } } } // ...
    • 21. // ... buildTypes { release { // here’s where signing code would go } } productFlavors { otherFlavor { // flavor-specific configuration, ex: buildConfigField "String", "PARSE_KEY", PARSE_KEY_PUBLISHER } } } // ...
    • 22. Shameless auto-promotion meeDamian.com/post/publishing-with-gradle goo.gl/zmlS10
    • 23. // ... buildTypes { release { // here’s where signing code would go } } productFlavors { otherFlavor { // flavor-specific configuration, ex: buildConfigField "String", "PARSE_KEY", PARSE_KEY_PUBLISHER } } } // ...
    • 24. // ... buildTypes { release { // here’s where signing code would go } } productFlavors { otherFlavor { // flavor-specific configuration, ex: buildConfigField "String", "PARSE_KEY", PARSE_KEY_PUBLISHER } } } // ...
    • 25. // ... buildTypes { release { // here’s where signing code would go } } productFlavors { otherFlavor { // flavor-specific configuration, ex: buildConfigField "String", "PARSE_KEY", PARSE_KEY_PUBLISHER } } } // ... BuildConfig.PARSE_KEY
    • 26. // ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:17.0.0' compile project(":FloatingLabel") compile files("libs/libraryName.jar") }
    • 27. // ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:17.0.0' compile project(":FloatingLabel") compile files("libs/libraryName.jar") }
    • 28. // ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:17.0.0' compile project(":FloatingLabel") compile files("libs/libraryName.jar") } gradleplease.appspot.com
    • 29. // ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:17.0.0' compile project(":FloatingLabel") compile files("libs/libraryName.jar") }
    • 30. // ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:17.0.0' compile project(":FloatingLabel") compile files("libs/libraryName.jar") }
    • 31. Android Gradle plugin docs SUCK ;-( But community rocks ;) +Android Developer Tools goo.gl/6a0aKP +Tor Norbye +Alex Ruiz [gradle]
    • 32. Fin and Q&A or ...
    • 33. Fin and Q&A or Material Design A little bit about
    • 34. Material Design ● “paper” and “ink” based design language ● introduced with Android L-something ● cross-everything (mobile, desktop, wear, etc) ● adds depth through shadows ● beautifully crafted (unlike this ugly presentation)
    • 35. Leave teleportation for Star Trek
    • 36. Keep things delightful
    • 37. Structure information
    • 38. Loads of beautifully crafted icons
    • 39. Depth helps with comprehension
    • 40. Interaction emits energy
    • 41. google.com/design
    • 42. Kick start <style name="Theme.Awesome" parent="@android:style/Theme.Material.Light.DarkActionBar"> </style> values-v21/styles.xml defaultConfig { targetSdkVersion 'L' } app/build.gradle
    • 43. Remarks ● CardView and RecyclerView ● android:colorPrimary, android:colorAccent ● android:tintMode=””
    • 44. Android Studio 0.8.1 Is now in Beta
    • 45. New project structure view (soon)
    • 46. API levels in wizard
    • 47. Layout Editor (menu)
    • 48. Layout Editor (different versions)
    • 49. Typechecking to the resource system
    • 50. Non-retarded emulators! genymotion.com
    • 51. Other, usual & gradual improvements ● Wear, TV & Glass now in wizard ● RTL layouts improvements ● Eclipse migrate process ● etc...
    • 52. +Damian Mee @meeDamian meeDamian.com/post/publishing-with-gradle goo.gl/zmlS10

    ×