iT邦幫忙

kotlin讀書會相關文章
共有 64 則文章
鐵人賽 Software Development DAY 29

技術 Day 29: [Happy End] Codeforces 相見歡

重新整理幾次失敗後,我轉念一想,應該會有備援方案才對。 讓學妹確認幾個可能之處後,果然在書籤列表裡找到了另一個程式碼網站Codeforces。 「學姊,這個介...

鐵人賽 Software Development DAY 30
Coroutine 停看聽 系列 第 30

技術 Day30:The end is not the end

不知不覺過了三十天,在這三十天中,我們學習了 Coroutine 的每一個面向,我們知道 Coroutine 是用來解決非同步程式執行的問題,它讓我們在面對非同...

鐵人賽 Software Development DAY 29
Coroutine 停看聽 系列 第 29

技術 Day29:複習 Channel、Flow

Coroutine 中如果要執行非同步程式,則需要把耗時任務寫在 suspend 函式中,並且在一個 CoroutineScope 中來執行,而建立 Corou...

鐵人賽 Software Development DAY 28
Coroutine 停看聽 系列 第 28

技術 Day28:複習 Coroutine

不知不覺來到了第28天,最後我們來做個複習吧。 Coroutine 的目的 用來解決非同步程式執行的問題,在以前面對非同步的程式時,我們可能需要建立一個新的執行...

鐵人賽 Software Development DAY 27
Coroutine 停看聽 系列 第 27

技術 Day27:測試 Coroutine

Coroutine 是非同步程式的解決方案,我們將耗時的任務置放在 suspend 函式中,在正常的使用 coroutine 情況之下,這些 suspend 函...

鐵人賽 Software Development DAY 26
Coroutine 停看聽 系列 第 26

技術 Day26:Flow 的運算子 - buffer()

Flow 是依序執行的,如果使用 collect 作為終端運算子,那麼在最後就會按照每一個元素所要花費的時間一一的執行,並把結果吐出來。 如下面的範例: cla...

鐵人賽 Software Development DAY 25
Coroutine 停看聽 系列 第 25

技術 Day 25:[Android] 將 LiveData 用 Flow 替代吧

LiveData 是 Android 中一個很有用的項目,它是一種可觀察(Observe)的資料存儲器類(data holder)。它會感知 Android 的...

鐵人賽 Software Development DAY 24
Coroutine 停看聽 系列 第 24

技術 Day24:Hot flow - State Flow (part II)

前一篇文章中,我們介紹了 State Flow 以及它的使用方式,本篇將繼續討論 State Flow。 我們知道 SharedFlow 有提供一個函式能夠讓一...

鐵人賽 Software Development DAY 23
Coroutine 停看聽 系列 第 23

技術 Day23:Hot Flow - StateFlow

State Flow 是從 Shared Flow 繼承而來的,跟 Shared Flow 不同的地方在於它是有初始值的,至少會重播一個值給訂閱者,所以它最少會...

鐵人賽 Software Development DAY 22
Coroutine 停看聽 系列 第 22

技術 Day22:Hot Flow - SharedFlow (Part II)

昨天我們使用了 shareIn 將 Flow 轉成 SharedFlow, 我們來研究一下這個函式。 public fun <T> Flow<...

鐵人賽 Software Development DAY 21
Coroutine 停看聽 系列 第 21

技術 Day21:Hot Flow - SharedFlow

Flow 是 cold stream,只有在呼叫 Terminal operator 的時候才會執行。也就是說每一個 Flow 都只有一次性的工作,只要呼叫一次...

鐵人賽 Software Development DAY 20
Coroutine 停看聽 系列 第 20

技術 Day20:Flow 想在其他的執行緒執行,可以嗎?

Flow 是屬於 coroutine 範圍項目,coroutine 中一個重要的特點可以輕易的切換執行緒,在 Flow 也有這項功能嗎? 我們知道要在 Coro...

鐵人賽 Software Development DAY 19
Coroutine 停看聽 系列 第 19

技術 Day19:Flow 準備好輸出了嗎?使用 Terminal operators 產生結果吧。

Flow 經過 Intermediate operators 將資料經過處理之後,最後一步則是要把資料輸出,而將資料輸出則是要透過 Terminal opera...

鐵人賽 Software Development DAY 18
Coroutine 停看聽 系列 第 18

技術 Day18:Flow 的中間運算子,資料輸出前還可以做很多事喔

我們在上一篇的文章中,介紹了 Flow 的基本概念,包括如何建立一個 Flow,以及 Flow 是一個 Cold stream,所謂的 cold stream...

鐵人賽 Software Development DAY 17
Coroutine 停看聽 系列 第 17

技術 Day17:Flow,一個非同步的資料流。 First Look

What is Flow? Flow 是用來處理非同步的資料流的一種方式,它會按照發射 (emit) 的順序來執行。 An asynchronous data...

鐵人賽 Software Development DAY 16
Coroutine 停看聽 系列 第 16

技術 Day16:四種不同的 Channel

在上一篇文章我們建立 Channel 時,使用 Channel<E>() 來建立一個 Channel。這個方法是由 Coroutine 所提供的一個...

鐵人賽 Software Development DAY 15
Coroutine 停看聽 系列 第 15

技術 Day15:Channel 的第一堂課

在前面的文章中,我們介紹了 coroutine 的基本原理,如何使用 launch 、 async 建立 CoroutineScope,如何選擇適當的調度器,讓...

鐵人賽 Software Development DAY 14
Coroutine 停看聽 系列 第 14

技術 Day14:內建的 suspend 函式,好函式不用嗎? (3)

這是我們內建的 suspend 函式第三篇,讓我們看看有哪些吧: joinAll() 還記得 join() 的功能是什麼嗎?join() 可以讓目前的 cor...

鐵人賽 Software Development DAY 13
Coroutine 停看聽 系列 第 13

技術 Day13:內建的 suspend 函式,好函式不用嗎? (2)

withContext suspend fun<T> withContext(context: CoroutineContext,...

鐵人賽 Software Development DAY 12
Coroutine 停看聽 系列 第 12

技術 Day12:內建的 suspend 函式,好函式不用嗎?(1)

Coroutine 的三大要素不知道大家還記得嗎?CoroutineScope、Suspend function、Dispatchers。 CoroutineS...

鐵人賽 Software Development DAY 11
Coroutine 停看聽 系列 第 11

技術 Day11:調度器(Dispatchers),我跳進來了,又跳出去了

Coroutine 一個重要的特性就是可以輕易的切換執行緒,不過 Coroutine 是使用 CoroutineDispatcher (調度器) 來切換執行緒,...

鐵人賽 Software Development DAY 10
Coroutine 停看聽 系列 第 10

技術 Day10:例外處理,留下來或我跟你走

程式在執行的時候,有些時候我們會遇到一些例外的情況,我們一般會使用 try-catch 來攔截程式執行所拋出的例外,用 try-catch 攔截到之後,我們就可...

鐵人賽 Software Development DAY 9
Coroutine 停看聽 系列 第 9

技術 Day9:Job vs SupervisorJob

還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...

鐵人賽 Software Development DAY 8
Coroutine 停看聽 系列 第 8

技術 Day8:結構化併發 (Structured Concurrency)

還記得我們第一個 Coroutine 程式嗎? suspend fun showContents() = coroutineScope { launch...

鐵人賽 Software Development DAY 7
Coroutine 停看聽 系列 第 7

技術 Day7:CoroutineScope:launch() 以及 async()

在前一篇文章我們知道 suspend 函式必須要在 Coroutine scope 裏面才能執行,本篇文章我們來了解一下兩個 Coroutine Builder...

鐵人賽 Software Development DAY 6
Coroutine 停看聽 系列 第 6

技術 Day6:三大要素

好的好的,經過了前幾篇文章之後,想必大家應該對 Coroutine 有一些了解了吧,我在這邊快速複習一下。 Coroutine 是用來解決非同步程式的執行問題,...

鐵人賽 Software Development DAY 5
Coroutine 停看聽 系列 第 5

技術 Day5:深入認識 Coroutine

這幾天我們把 Coroutine 神秘的面紗好像掀開了一點,知道他是用來解決非同步程式的問題,也我們知道四個 Coroutine 的特點。Coroutine 的...

鐵人賽 Software Development DAY 4
Coroutine 停看聽 系列 第 4

技術 Day4:Coroutine 的四大特點

在前一篇文章中,我們完成了一個 Coroutine 的程式,並且在最後我們發現了兩個特點: 用 Coroutine 完成的程式碼可以讓非同步程式碼以同步的程式...

鐵人賽 Software Development DAY 3
Coroutine 停看聽 系列 第 3

技術 Day3:第一個 Coroutine 程式

在上一篇文章中,我們知道如果我們要以非同步的方式來執行,可以使用 Thread + callback 來寫,不過使用 Callback 可能會發生兩個問題,一是...

鐵人賽 Software Development DAY 1
Coroutine 停看聽 系列 第 1

技術 Day 1:同步與非同步執行

Hi 各位好,又到了我們一年一度的 iT邦鐵人賽的挑戰,這次我所挑戰的主題是 Kotlin 中用來處理非同步的 lib Coroutine,中文名稱「協程」,是...