Lightmeter app inspired by Material 3 design system.
Find a file
Vadim dfe10493b8
ML-236 Exposure offset for equipment profiles (#238)
* Set `targetSdkVersion ` to 35

* unified zoom icons

* expose exposure and zoom ranges

* added list tile to set exposure offset for equipment profile

* added translations

* Update metering_screen.png

* use latest m3 packages

* fixed iap stub

* added missing field
2025-07-09 19:27:46 +02:00
.github Use Xcode 16 2025-05-14 11:13:43 +02:00
.vscode Upgrade project to the latest stable Flutter version (#201) 2025-01-20 19:32:57 +01:00
android Set targetSdkVersion to 35 2025-07-07 10:52:16 +02:00
assets Release v1.1.0 2025-05-14 08:59:16 +00:00
doc Automated release screenshots generation (#177) 2024-05-21 19:13:33 +02:00
iap ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
integration_test ML-220 Show focal length when zooming (#233) 2025-05-14 10:26:59 +02:00
ios ML-220 Show focal length when zooming (#233) 2025-05-14 10:26:59 +02:00
lib ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
resources ML-11 Implement volume buttons actions (#86) 2023-07-09 13:39:33 +02:00
screenshots ML-220 Show focal length when zooming (#233) 2025-05-14 10:26:59 +02:00
scripts ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
test ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
test_driver Automated release screenshots generation (#177) 2024-05-21 19:13:33 +02:00
.fvmrc ML-209 Camera preview orientation is wrong (#216) 2025-01-27 21:32:41 +01:00
.gitignore Moved Firebase options to .gitignore (#212) 2025-01-23 18:24:32 +01:00
.metadata init project 2022-10-15 19:35:35 +03:00
analysis_options.yaml ML-62 Interactors tests (#87) 2023-07-10 17:49:34 +02:00
crowdin.yml Push new localization strings to Crowdin (#30) 2023-02-12 13:09:55 +03:00
dart_test.yaml ML-166 Golden tests (#167) 2024-04-12 08:07:20 +02:00
LICENSE Initial commit 2022-10-15 16:00:14 +03:00
m3_lightmeter.code-workspace ML-107 Films filter (#118) 2023-09-14 16:59:16 +02:00
PRIVACY_POLICY.md Update PRIVACY_POLICY.md 2025-05-14 10:35:29 +02:00
pubspec.lock ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
pubspec.yaml ML-236 Exposure offset for equipment profiles (#238) 2025-07-09 19:27:46 +02:00
README.md Added script to setup the repo & updated README.md (#223) 2025-03-17 21:35:33 +01:00

Table of contents

Backstory

Some time ago I've started developing the Material Lightmeter app. Unfortunately, the last update of this app was almost a year prior to creation of this repo. So after reading some positive review on Google Play saying that "this is an excellent app, too bad it is no longer updated", I've decided to make an update and also make this app open source. Maybe someone sometime will decide to contribute to this project.

But as the existing repo contained some sensitive data, that I've pushed due to lack of experience, I had to make a new one. And if creating a new repo, why not rewrite the app from scratch?

Without further delay behold my new Lightmeter app inspired by Material You (a.k.a. M3)

Screenshots

Development

1. Install Flutter

To build this app you need to install Flutter 3.24.5 stable. How to install.

2. Project setup

Restore git-ignored files:

For macOS you can just run the following script:

sh scripts/setup_fork.sh

Or create the files manually using the contents from the script.

Get dependencies

If you are using VSCode, you can open the workspace like so: File -> Open Workspace from File -> m3_lightmeter.code-workspace. Otherwise you have to run flutter pub get command from the iap folder.

Then you can fetch all the neccessary dependencies and generate translation files by running the following commands:

flutter pub get
flutter pub run intl_utils:generate

3. Build

Support

To report a bug or suggest a new feature open a new issue. To contribute to the project feel free to open a Pull Request, but you need to follow this style guide.

In case you have any other questions please contact me via email.

iOS Limitations

A list of features, that Android version of the app has and that iOS does not.

Incident light metering

Apple does not provide API for reading Lux stream form the ambient light sensor. Lux can be calculated based on front camera image stream, but this would be a reflected light. So there is no way incident light metering can be implemented on iOS.

Volume buttons action

This can be implemented but the app will be rejected due to 2.5.9