Giter Club home page Giter Club logo

zhujiang521 / playweather Goto Github PK

View Code? Open in Web Editor NEW
470.0 4.0 73.0 178.51 MB

🔥🔥🔥 Compose、Lce、MVVM、深色模式、横屏、无网弱网适配、Room、Hilt、多语言切换,目前Android最新的库基本全用上了,你想要的都有。还使用 Compose-Desktop 编写了桌面版本,快来试试吧!🔥🔥🔥

License: MIT License

Kotlin 100.00%
compose jetpack-compose jetpack-android kotlin room coroutines-android mvvm hilt-android compose-desktop

playweather's Introduction

PlayWeather:玩天气

我的新书:《Jetpack Compose:Android全新UI编程》已出版

Compose 绝对是 Android UI 的未来,声明式的 UI 已经有太多语言试水了,效果都非常好,大家如果喜欢本书的话,可以点击下面的地址进行购买。另外本书的资源文件大家可以去图灵的官网中进行下载。

京东购买地址

当当购买地址

天猫购买地址

项目简介

之前写过PlayAndroid:玩安卓的Compose版本,但最近在手机上看天气的时候发现一堆广告,烦得要死,自己写一个吧,正好再练练Compose。 项目中使用到了很多库,都在下方展示了出来,而且自己写的天气绝对没有广告,也不会乱下载东西,也不会胡乱跳别的应用,比如某多多、某宝等等 使用效果大家可以看下面方的截图,只是想做一个干净的、没有广告、性能好点的天气,没有别的需求。 如果想只下载apk的话可以去app/release中进行下载,如果想学习项目的编写可以下载代码进行学习。

项目截图

请添加图片描述 在这里插入图片描述
请添加图片描述 在这里插入图片描述
------------------------------------------------------------ ------------------------------------------------------------
请添加图片描述 请添加图片描述
------------------------------------------------------------ ------------------------------------------------------------
请添加图片描述 请添加图片描述

项目使用三方库

  • Lottie:动画库,之前在AndroidView中使用很多
  • Navigation:页面之间的跳转
  • Navigation-animation:配合Navigation进行使用,可添加动画
  • Accompanist-pager:Compose中的ViewPager
  • Room:Jetpack数据库
  • Splashscreen:启动动画
  • Hilt:依赖注入

说明

本项目可以让大家用作学习,不可以任何的形式进行商用,最终解释权归本人所有。

playweather's People

Contributors

aa352160 avatar zhujiang521 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

playweather's Issues

闪退

添加两个相同的城市就会出现闪退。另外进入app动画底部会有indicator,这应该是进入之后才显示

为什么我这里总是乱码,运行不成功

C:\Users\SZ4311.gradle\caches\transforms-3\6341fd1ecc8b4ea20e7ca870aa3b1c2e\transformed\output\temp\module-info.java:7: ����: ���� GBK �IJ���ӳ���ַ� (0xD9)

这个文件在哪里呢

城市选择来回切换一阵,就会报错,不知道从何查起,全是指向的内部错误

城市选择来回切换一阵,就会报错,不知道从何查起,全是指向的内部错误
java.lang.IllegalStateException: Check failed.
at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$precompose$1.dispose(SubcomposeLayout.kt:566)
at androidx.compose.foundation.lazy.layout.LazyLayoutPrefetcher.cancelScheduledPrefetch(LazyLayoutPrefetcher.android.kt:274)
at androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchPolicy.cancelScheduledPrefetch(LazyLayoutPrefetchPolicy.kt:42)
at androidx.compose.foundation.lazy.LazyListState.notifyPrefetch(LazyListState.kt:305)
at androidx.compose.foundation.lazy.LazyListState.onScroll$foundation_release(LazyListState.kt:266)
at androidx.compose.foundation.lazy.LazyListState$scrollableState$1.invoke(LazyListState.kt:150)
at androidx.compose.foundation.lazy.LazyListState$scrollableState$1.invoke(LazyListState.kt:150)
at androidx.compose.foundation.gestures.DefaultScrollableState$scrollScope$1.scrollBy(ScrollableState.kt:134)
at androidx.compose.foundation.gestures.ScrollingLogic.dispatchScroll-f0eR0lY(Scrollable.kt:314)
at androidx.compose.foundation.gestures.ScrollDraggableState.dragBy-Uv8p0NA(Scrollable.kt:389)
at androidx.compose.foundation.gestures.DraggableKt$draggable$9$2$2.invokeSuspend(Draggable.kt:244)
at androidx.compose.foundation.gestures.DraggableKt$draggable$9$2$2.invoke(Unknown Source:8)
at androidx.compose.foundation.gestures.DraggableKt$draggable$9$2$2.invoke(Unknown Source:4)
at androidx.compose.foundation.gestures.ScrollDraggableState$drag$2.invokeSuspend(Scrollable.kt:400)
at androidx.compose.foundation.gestures.ScrollDraggableState$drag$2.invoke(Unknown Source:8)
at androidx.compose.foundation.gestures.ScrollDraggableState$drag$2.invoke(Unknown Source:4)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2$1.invokeSuspend(ScrollableState.kt:148)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2$1.invoke(Unknown Source:8)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2$1.invoke(Unknown Source:4)
at androidx.compose.foundation.MutatorMutex$mutateWith$2.invokeSuspend(MutatorMutex.kt:160)
at androidx.compose.foundation.MutatorMutex$mutateWith$2.invoke(Unknown Source:8)
at androidx.compose.foundation.MutatorMutex$mutateWith$2.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at androidx.compose.foundation.MutatorMutex.mutateWith(MutatorMutex.kt:153)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2.invokeSuspend(ScrollableState.kt:145)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2.invoke(Unknown Source:8)
at androidx.compose.foundation.gestures.DefaultScrollableState$scroll$2.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at androidx.compose.foundation.gestures.DefaultScrollableState.scroll(ScrollableState.kt:144)
at androidx.compose.foundation.lazy.LazyListState.scroll(LazyListState.kt:235)
at androidx.compose.foundation.gestures.ScrollDraggableState.drag(Scrollable.kt:398)
at androidx.compose.foundation.gestures.DraggableKt$draggable$9$2.invokeSuspend(Draggable.kt:241)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:68)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1496)
2022-03-11 09:56:50.746 3806-3806/com.zj.weather E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:1295)
at android.view.Choreographer.doFrame(Choreographer.java:1022)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1483)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8307)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)

如何显示小部件

我的手机是红米k40,Android12,装上这个APP后,没看到小部件啊,请问怎么在手机桌面弄出这个小部件

java.lang.reflect.InvocationTargetException (no error message)

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message)

def room_version = "2.3.0"
在 M1 芯片的mac 上编译失败
修改为 def room_version = "2.4.0-alpha03"
解决此问题

记住选择的城市

如何记住已经添加的城市,下次打开的时候依然在已选择的列表里

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.