在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):andyb129/31DaysOfKotlin开源软件地址(OpenSource Url):https://github.com/andyb129/31DaysOfKotlin开源编程语言(OpenSource Language):Kotlin 100.0%开源软件介绍(OpenSource Introduction):31 Days Of KotlinA summary of all the kotlin tips from Google's Android Developer Twitter account with the hastag #31DaysofKotlin A Twitter Moment summary of all the tweets are here -> https://twitter.com/i/moments/980488782406303744 TODO
ContentsDay 1 - let, apply, with and runDay 2 - KTX view paddingDay 3 - ParcelableDay 4 - SpansDay 5 - LambdasDay 6 - BundlesDay 7 - Type safe buildersDay 8 - KTX Content ValuesDay 9 - KTX iterators for ViewGroup & SparseArrayDay 10 - Basic syntaxDay 11 - Operator overloadDay 12 - SequenceDay 13 - KTX GraphicsDay 14 - Extension functionsDay 15 - ByDay 16 - KTX reifiedDay 17 - @JvmNameDay 18 - inlineDay 19 - requireDay 20 - lateinitDay 21 - lazyDay 22 - sealed classesDay 23 - default parametersDay 24 - access modifiersDay 25 - data classesDay 26 - propertiesDay 27 - rangesDay 28 - when statementDay 29 - KTX destructuringDay 30 - string templatesDay 31 - elvis operatorDay 1 - let, apply, with and runLet’s run with some standard Kotlin functions! Short and powerful, Day 2 - KTX view paddingExtending existing APIs with default arguments usually makes everyone happy. Android KTX lets you set the padding on one side of a view using default parameters. A one line function that saves so much code! Code: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/view/View.kt#L117 Day 3 - ParcelableLove the speed of Parcelable, but don’t like writing all that code? Say hello to Parcelize Spec: https://github.com/Kotlin/KEEP/blob/master/proposals/extensions/android-parcelable.md Day 4 - SpansPowerful but hard to use - that’s how the text styling Spans API feels. Android KTX adds extension functions for some of the most common spans and makes the API easier to use Android KTX: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/text/SpannableStringBuilder.kt Day 5 - LambdasLambdas are sweet. With last parameter call syntax, you can cleanup callbacks, Callable, and Runnable. For example, Android KTX sweetens Docs: https://kotlinlang.org/docs/reference/lambdas.html Android KTX: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/os/Handler.kt#L38 Day 6 - BundlesBundle up, and get ready for the concise bundle creator in Android KTX. No more calls to One call will make you a new bundle, and it’ll even handle Arrays! Code: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/os/Bundle.kt#L27 Day 7 - Type safe builders[1/4] Specifically terrific? Domain specific languages can be made by using type safe builders. They make for clean APIs; and you can build them yourself too. Extension Lambdas: https://kotlinlang.org/docs/reference/lambdas.html#function-literals-with-receiver Type Safe Builders: https://kotlinlang.org/docs/reference/type-safe-builders.html Day 8 - KTX Content ValuesCombine the power of Content Values with the brevity of Kotlin. Use the Android KTX Content Values creator and just pass a Pair<StringKey, Value>. Android KTX: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/content/ContentValues.kt#L21 Day 9 - KTX iterators for ViewGroup & SparseArrayIterators in interesting places? Android KTX adds iterators to ViewGroup and SparseArray To define iterator extensions use the Docs: https://kotlinlang.org/docs/reference/control-flow.html#for-loops Android KTX: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/view/ViewGroup.kt#L66 Day 10 - Basic syntax[1/2] Utility methods for a class? Add them to the top level of the source file. In Java, they are compiled as static methods of that class. Doc: https://kotlinlang.org/docs/reference/basic-syntax.html Day 11 - Operator overloadWrite Kotlin (time * 2) faster with operator overloading. Objects like Path, Range or SpannableStrings naturally allow for operations like addition or subtraction. With Kotlin, you can implement your own operators https://goo.gl/EGipGz https://goo.gl/iy8tZ9 Day 12 - Sequence[1/2] Sequences are lists that never existed. A Sequence is a cousin of Iterator, lazily generating one value at a time. This matters when using map and filter - they’ll create Sequences instead of copying the list for every step! Docs: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/index.html Day 13 - KTX GraphicsIf you ever converted a Drawable to a Bitmap then you know how much boilerplate you need. Android KTX has a great set of functions to make your code more concise when working with classes from the graphics package: https://github.com/android/android-ktx/tree/master/src/main/java/androidx/core/graphics/drawable Day 14 - Extension functions[1/2] No more Util classes! Extend the functionality of a class by using Doc: https://kotlinlang.org/docs/reference/extensions.html#extension-functions Example: https://github.com/android/android-ktx/blob/master/src/main/java/androidx/core/net/Uri.kt#L28 Day 15 - ByDelegate your work to another class with Delegation: https://kotlinlang.org/docs/reference/delegation.html Delegated properties: http://kotlinlang.org/docs/reference/delegated-properties.html Day 16 - KTX reifiedTo make the concept of reified concrete an example is in order: Docs: https://kotlinlang.org/docs/reference/inline-functions.html#reified-type-parameters Day 17 - @JvmNameUsing Kotlin and Java in the same project? Do you have classes with top-level functions or properties? By default, the compiler generates the class name as “YourFileKt”. Change it by annotating the file with Doc: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#package-level-functions Day 18 - inlineCan’t wait to use lambdas to make new APIs? Get in line. Kotlin lets you specify a function as Docs: https://kotlinlang.org/docs/reference/inline-functions.html Day 19 - require[1/2] Are your function arguments valid? Check before using them, with Doc: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/require.html Day 20 - lateinitIn Android, onCreate or other callbacks initialize objects. In Kotlin non-null vals must be initialized. What to do? Enter Docs: https://kotlinlang.org/docs/reference/properties.html#late-initialized-properties-and-variables Day 21 - lazyIt’s good to be lazy! Defer the cost of expensive property initialization until they’re actually needed, by using Lazy: https://kotlinlang.org/docs/reference/delegated-properties.html#lazy Day 22 - sealed classes[1/3] Kotlin sealed classes let you easily handle error data. When combined with LiveData you can use one LiveData to represent both the success path and the error path. Way better than using two variables. Docs: https://kotlinlang.org/docs/reference/sealed-classes.html Day 23 - default parametersIs the number of method overloads getting out of hand? Specify default parameter values in functions. Make the code even more readable with named parameters. Doc: https://kotlinlang.org/docs/reference/functions.html#default-arguments Day 24 - access modifiersIn Kotlin, everything is public by default! Well, almost. Kotlin has a rich set of visibility modifiers you can use as well: private, protected, internal. Each of them reduces the visibility in a different way. Docs: https://kotlinlang.org/docs/reference/visibility-modifiers.html Day 25 - data classesCreating classes with one role: to hold data? Mark them as “data” classes. The default implementation of equals() is generated (so are hashCode(), toString(), and copy()) and checks for structural equality. Docs: https://kotlinlang.org/docs/reference/data-classes.html#data-classes https://kotlinlang.org/docs/reference/equality.html Day 26 - propertiesIn Kotlin, classes can have mutable and read-only properties, with getters and setters generated by default. You can also implement custom ones if required. Docs: https://kotlinlang.org/docs/reference/properties.html
2023-10-27 2022-08-15 2022-08-17 2022-09-23 2022-08-13 |
请发表评论