Skip to content

Instantly share code, notes, and snippets.

View sliskiCode's full-sized avatar
🌴
On vacation

Piotr Ślesarew sliskiCode

🌴
On vacation
View GitHub Profile
@sliskiCode
sliskiCode / Sugar.kt
Last active December 15, 2017 09:45
6 magic sugars that can make your Kotlin codebase happier #22
interface ComponentInterface {
val onNavigationClick: (() -> Unit)?
var searchText: String
}
class Component : ComponentInterface {
private val navigable: Navigable = NavigableImpl()
@sliskiCode
sliskiCode / Sugar.kt
Last active December 15, 2017 09:44
6 magic sugars that can make your Kotlin codebase happier #21
internal interface Navigable {
val onNavigationClick: (() -> Unit)?
}
internal interface Searchable {
var searchText: String
}
@sliskiCode
sliskiCode / Sugar.kt
Last active December 15, 2017 09:43
6 magic sugars that can make your Kotlin codebase happier #20
interface Navigable {
val onNavigationClick: (() -> Unit)?
}
interface Searchable {
var searchText: String
}
@sliskiCode
sliskiCode / Sugar.java
Last active December 7, 2017 17:44
6 magic sugars that can make your Kotlin codebase happier #19
public final class MediaItemRenderer {
public final void render(@NotNull View view, @NotNull Item item) {
if (!(item instanceof MediaItem)) {
throw (Throwable)(new IllegalArgumentException("Invalid type, should be " + MediaItem.class.getSimpleName()));
} else {
MediaItem it = (MediaItem)item;
view.show((Function0)(new MediaItemRenderer$render$1$1$1(it)));
view.reset();
}
}
@sliskiCode
sliskiCode / Sugar.kt
Last active January 11, 2018 12:56
6 magic sugars that can make your Kotlin codebase happier #18
class MediaItemRenderer: Renderer {
override fun render(view: View, item: Item) = with(view) {
withCorrectType<MediaItem>(item) {
show { it.media() }
reset()
}
}
}
@sliskiCode
sliskiCode / Sugar.kt
Last active December 11, 2017 09:38
6 magic sugars that can make your Kotlin codebase happier #17
fun <T> withCorrectType(toBeChecked: Item, block: (T) -> Unit) {
if (toBeChecked !is T) {
throw IllegalArgumentException("Invalid type")
}
block.invoke(toBeChecked)
}
@sliskiCode
sliskiCode / Sugar.kt
Last active December 6, 2017 22:53
6 magic sugars that can make your Kotlin codebase happier #16
class MediaItemRenderer : Renderer {
override fun render(view: View, item: Item) = with(view) {
if (item !is MediaItem) {
throw AssertionError("Item is not an instance of MediaItem")
}
showMedia(item.media)
reset()
}
@sliskiCode
sliskiCode / Sugar.kt
Last active December 6, 2017 22:53
6 magic sugars that can make your Kotlin codebase happier #15
abstract class Item
class MediaItem : Item() {
val media = ...
}
class IconItem : Item() {
val icon = ...
}
@sliskiCode
sliskiCode / Sugar.kt
Last active December 5, 2017 21:16
6 magic sugars that can make your Kotlin codebase happier #14
interface View {
fun show()
fun hide()
fun reset()
fun clear()
}
class Presenter(private val view: View) {
@sliskiCode
sliskiCode / Sugar.kt
Last active December 5, 2017 20:58
6 magic sugars that can make your Kotlin codebase happier #13
val sugar = "Fructos"
with(sugar) {
println(toUpperCase())
println(toLowerCase())
println(capitalize())
}