Name Date Size #Lines LOC

..--

.github/workflows/H25-Apr-2025-212170

.idea/H25-Apr-2025-370369

app/H25-Apr-2025-2,8341,901

benchmark/H25-Apr-2025-624387

core/H25-Apr-2025-4,7893,535

data/settings/H25-Apr-2025-1,9921,267

docs/H25-Apr-2025-12895

feature/H25-Apr-2025-8,8196,821

gradle/H25-Apr-2025-176146

hooks/H25-Apr-2025-243

spotless/H25-Apr-2025-461

.editorconfigH A D25-Apr-202590 33

.gitignoreH A D25-Apr-2025357 1919

Android.bpH A D25-Apr-2025261 1714

LICENSEH A D25-Apr-202511.1 KiB203169

METADATAH A D25-Apr-2025671 2119

MODULE_LICENSE_APACHE2HD25-Apr-20250

OWNERSH A D25-Apr-2025268 87

README.mdH A D25-Apr-20252.6 KiB5939

TEST_MAPPINGH A D25-Apr-2025221 1513

build.gradle.ktsH A D25-Apr-20251.7 KiB5128

gradle.propertiesH A D25-Apr-20252.1 KiB3434

gradlewH A D25-Apr-20255.6 KiB186125

gradlew.batH A D25-Apr-20252.7 KiB9068

settings.gradle.ktsH A D25-Apr-20251.3 KiB4427

README.md

1![Video Capture with Jetpack Camera App](docs/images/JCA-video-capture.gif "Video Capture with Jetpack Camera App")
2# Jetpack Camera App ��
3
4Jetpack Camera App (JCA) is a camera app, focused on features used by app developers, and built
5entirely with CameraX, Kotlin and Jetpack Compose. It follows Android
6design and development best practices and it's intended to be a useful reference for developers and
7OEMs looking to validate their camera feature implementations.
8
9# Development Environment ⚒️
10
11This project uses the gradle build system, and can be imported directly into Android Studio.
12
13Currently, Jetpack Camera App is built using the Android Gradle Plugin 8.4, which is only compatible
14with Android Studio Jellyfish or newer.
15
16# Architecture ��
17
18JCA is built with [modern android development (MAD)](https://developer.android.com/modern-android-development) principles in mind,
19including [architecture and testing best practices](https://developer.android.com/topic/architecture).
20
21The app is split into multiple modules, with a clear separation between the UI and data layers.
22
23# Testing ��
24
25Thorough testing is a key directive of JCA. We use [Compose Test](https://developer.android.com/develop/ui/compose/testing) and
26[UI Automator](https://developer.android.com/training/testing/other-components/ui-automator) to write instrumentation
27tests that run on-device.
28
29These tests can be run on a connected device via Android Studio, or can be tested on an Android
30Emulator using built-in Gradle Managed Device tasks. Currently, we include Pixel 2 (API 28) and
31Pixel 8 (API 34) emulators which can be used to run instrumentation tests with:
32
33`$ ./gradlew pixel2Api28DebugAndroidTest` and
34`$ ./gradlew pixel8Api34DebugAndroidTest`
35
36
37## Source Code Headers
38
39Every file containing source code must include copyright and license
40information. This includes any JS/CSS files that you might be serving out to
41browsers. (This is to help well-intentioned people avoid accidental copying that
42doesn't comply with the license.)
43
44Apache header:
45
46    Copyright (C) 2024 The Android Open Source Project
47
48    Licensed under the Apache License, Version 2.0 (the "License");
49    you may not use this file except in compliance with the License.
50    You may obtain a copy of the License at
51
52        https://www.apache.org/licenses/LICENSE-2.0
53
54    Unless required by applicable law or agreed to in writing, software
55    distributed under the License is distributed on an "AS IS" BASIS,
56    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
57    See the License for the specific language governing permissions and
58    limitations under the License.
59