在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:google/iosched开源软件地址:https://github.com/google/iosched开源编程语言:Kotlin 96.9%开源软件介绍:Google I/O Android App2021 UpdateDue to global events, Google I/O 2020 was canceled and Google I/O 2021 is an online-only event, so
the companion app hasn't been updated since 2019. However, the Major improvements implemented in 2021:
DescriptionGoogle I/O is a developer conference with several days of deep technical content featuring technical sessions and hundreds of demonstrations from developers showcasing their technologies. This project is the Android app for the conference. Running the appThe project contains a FeaturesThe app displays a list of conference events - sessions, office hours, app reviews, codelabs, etc. - and allows the user to filter these events by event types and by topics (Android, Firebase, etc.). Users can see details about events, and they can star events that interest them. Conference attendees can reserve events to guarantee a seat. Other features include a Map of the venue, informational pages to guide attendees during the conference in Info, and time-relevant information during the conference in Home. Development EnvironmentThe app is written entirely in Kotlin and uses the Gradle build system. To build the app, use the ArchitectureThe architecture is built around Android Architecture Components and follows the recommendations laid out in the Guide to App Architecture. Logic is kept away from Activities and Fragments and moved to ViewModels. Data is observed using Kotlin Flows and the Data Binding Library binds UI components in layouts to the app's data sources. The Repository layer handles data operations. IOSched's data comes from a few different sources - user data is stored in Cloud Firestore (either remotely or in a local cache for offline use), user preferences and settings are stored in DataStore, conference data is stored remotely and is fetched and stored in memory for the app to use, etc. - and the repository modules are responsible for handling all data operations and abstracting the data sources from the rest of the app. A lightweight domain layer sits between the data layer
and the presentation layer, and handles discrete pieces of business logic off
the UI thread. See the The Navigation component is used to implement navigation in the app, handling Fragment transactions and providing a consistent user experience. Room is used for Full Text Search using Fts4 to search for a session, speaker, or codelab. UI tests are written with Espresso and unit tests use Junit4 with Mockito when necessary. The Jetpack Benchmark library makes it easy to benchmark your code from within Android Studio. The library handles warmup, measures your code performance, and outputs benchmarking results to the Android Studio console. We added a few benchmark tests around critical paths during app startup - in particular, the parsing of the bootstrap data. This enables us to automate measuring and monitoring initial startup time. Here is an example from a benchmark run:
Dependency Injection is implemented with Hilt. For more details on migrating from dagger-android to Hilt, read the (migration article. ViewPager2 offers enhanced functionality over the original ViewPager library, such as right-to-left and vertical orientation support. For more details on migrating from ViewPager to ViewPager2, please see this migration guide. FirebaseThe app makes considerable use of the following Firebase components:
For 2020, the implementation was migrated to the Firebase Kotlin extension (KTX) libraries to write more idiomatic Kotlin code when calling Firebase APIs. To learn more, read this Firebase blog article on the Firebase KTX libraries. KotlinThe app is entirely written in Kotlin and uses Jetpack's Android Ktx extensions. Asynchronous tasks are handled with coroutines. Coroutines allow for simple and safe management of one-shot operations as well as building and consuming streams of data using Kotlin Flows. All build scripts are written with the Kotlin DSL. Copyright
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论