<>簡介
在過去幾周里,我進行了一項令人大開眼界的實驗,將 Chat-GPT(我使用的是 Bing Chat,它在后臺使用了
GPT-4,并且可以免費使用)融入到我的日常 Android 開發工作流程中,以探索它是否能夠提高我的工作效率。這實在是一個令人興奮的實驗!
幾天以后,我對它加速我的開發工作流程的能力感到震撼!我能夠以更快的速度完成更多任務!通過一段時間的嘗試,我對其中的主要用例有了深入的了解,Chat-GPT
能夠在您的開發工作中節省大量時間。因此,我將在本文中與大家分享這些內容。
請注意:我將在整篇文章中使用 Chat-GPT 來指代 Bing Chat,因為它們本質上是同一個工具。
適用于新手 Android 開發者的提示
首先,如果您是 Android 開發的新手,那么本文可能不太適合您。這篇文章更適合中級和高級的 Android 開發人員。
其次,不要僅僅依賴 Chat-GPT 這樣的大型語言模型來盲目復制粘貼代碼,而不去理解代碼的作用。了解 Android
開發是一項比僅僅復制粘貼代碼更有價值的技能。很多人可能沒有意識到這一點,但是當您對 Android
開發的基礎知識有了扎實的掌握后,您就能以更高效的方式利用語言模型,從而大大提升您的工作效率。
<>ChatGPT在哪些方面可提高Android開發者工作效率
<>生成文檔
讓我們從一個非常簡單的用例開始。編寫文檔是您作為開發人員要做的最重要的事情之一。它不僅可以幫助其他人了解您的代碼的作用,還可以幫助您提醒自己,當您在很長一段時間后回來重新訪問時,您編寫的代碼正在執行什么操作。
傳統上,它一直是許多程序員的禍根,因為它占用了寶貴的時間,無法實際編碼您要構建的東西。在這里,Chat-GPT
可以節省大量時間!只需讓它為您生成文檔即可。但是,如果它沒有傳達您的想法,請確保校對和修改它生成的文檔。這是一個超級有用的用例,它為我節省了大量時間!這是一個例子
// The function which needs to be documented suspend fun
getPlacesSuggestionsForQuery( @Query("q") query: String, @Query("session_token")
sessionToken: String, @Query("limit") @IntRange(1, 10) limit: Int = 10 ):
Response<SuggestionsResponse>
提示:為以下方法生成 KDOC kotlin 文檔 — “…”
<>生成映射函數
這是一個簡單但非常有用的用例。如果您通過應用一些干凈的架構原則來編寫您的應用程序,您可能會編寫很多映射器函數。在大多數情況下,這些是您必須編寫的樣板代碼,以便將一個架構層中使用的對象轉換為不同架構層中使用的對象。
同樣,Chat-GPT
可以使編寫所有這些映射器函數的工作變得輕而易舉!只需添加兩個類的定義,并要求它編寫一個映射器函數即可。就這么簡單!只需確保驗證它生成的代碼是正確的。這是一個例子。
// Class 1 data class WeatherDetails( val nameOfLocation: String, val
temperature: Temperature, val wind: Wind, val weatherCondition: WeatherCondition
, val humidity: String, val pressure: String ) { data class Temperature( val
currentTemp: String, val minTemperature: String, val maxTemperature: String, )
data class Wind(val speed: String, val direction: String) data class
WeatherCondition( val oneWordDescription: String, @DrawableRes val
currentWeatherConditionIcon: Int, ) } // Class 2 data class BriefWeatherDetails(
val nameOfLocation: String, val currentTemperature: String, val shortDescription
: String, @DrawableRes val shortDescriptionIcon: Int, )
提示:為以下兩個類編寫一個映射器函數——“…”和“…”
但是,我希望映射器函數成為該類的擴展WeatherDetails。因此,我要求將其作為擴展功能。
提示:將其作為 WeatherDetails 類的擴展函數
<>用樣本數據填充數據類
作為一名開發人員,您肯定遇到過這樣一種情況:您需要創建一個帶有樣本數據的模型數據類的實例,以一時興起來測試一些東西。好吧,這是 Chat-GPT
的完美用例。假設我想填充此類的所有屬性以快速測試可組合函數。
data class BriefWeatherDetails( val nameOfLocation: String, val
currentTemperature: String, val shortDescription: String, @DrawableRes val
shortDescriptionIcon: Int ) @Preview @Composable private fun Preview(){ . .
CompactWeatherCard( modifier = Modifier.padding(horizontal = 16.dp),
briefWeatherDetails:BriefWeatherDetails = //need a fake instance here, onClick =
{ /*TODO*/ } ) . . }
我可以簡單地要求 Chat-GPT 生成一個類的實例,其中填充了樣本數據。
提示:使用樣本數據創建此類的一個實例——“……”
除了需要更改圖標的資源 ID 之外,我還得到了一個充滿示例數據的實例,我可以立即使用它!如果我提到了資源 ID,它可能也會正確添加它!
<>生成 composable previews
如果您使用 Jetpack Compose,那么這就是為您準備的!設置可組合預覽可能是一項相對耗時的任務。您必須創建一個新的私有函數,用
注釋它@Preview,用您的主題可組合項包圍可組合項,并用示例數據填充可組合項的參數。光是查看可組合項的預覽就需要做大量工作!
不用擔心!你可能已經猜到了!Chat-GPT 支持您!只需讓它為您完成所有工作!這是一個例子。
// Here's an overload of the previous composable that doesn't depend on any //
domain object. Let's ask Chat-GPT to generate a preview for us. fun
CompactWeatherCard( nameOfLocation: String, shortDescription: String,
@DrawableRes shortDescriptionIcon: Int, weatherInDegrees: String, onClick: () ->
Unit, modifier: Modifier = Modifier ) {...}
提示:為以下可組合項創建一個預覽可組合項 — “…”
它甚至自己用示例數據填充了可組合項的參數.
現在,我想用CompactWeatherCard一個主題可組合項和一個表面可組合項包圍可組合項。所以,我要求它也這樣做。
提示:使用名為 WeatherAppThemeComposable 的可組合項和 Surface 可組合項包裹預覽中的可組合項
我注意到主題可組合項具有后綴“Composable”,因為我在之前的提示中犯了一個錯誤。讓我們糾正它。
提示:將 WeatherAppThemeComposable 重命名為 WeatherAppTheme
<>結論
這篇博文到此結束 ,這些只是我發現 Chat-GPT 非常有用的幾個用例。我相信我會發現更多,我使用它的次數越多。我會確保在找到它們時分享它們。
今日推薦