Skip to content

About

An iOS photography education application under active development. This repository is the public showcase. The source code is private.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

IMAGECRAFT app icon: viewfinder corner marks around an ochre aperture

IMAGECRAFT

A school for photography and moving image, not a checklist.
An iOS app for learning photography with the camera you already own.

Pre-release. iPhone, iOS 18 and later. Not yet available on the App Store.
Project page    Engineering notes    Roadmap

Today screen recommending one exercise and explaining why it comes next   A sealed prediction: aperture f/8, duration 1/125, ISO 400, locked before the camera is touched   A skill page separating what has been shown from what has been practised

About

IMAGECRAFT teaches photography and the moving image through short lessons and practice you do with your own camera, whether that is a phone, a compact or an interchangeable-lens body. The app sets up each exercise, keeps your predictions and notes, and only claims what it can actually check.

It does not take, import, edit or analyse photographs.

This repository holds documentation, screenshots and the project page. The application's source code is private.

How practice works

Most exercises follow the same sequence. Before you touch the camera, you write down what you expect, for example the exact settings you are about to dial in without looking. You then seal that prediction. From that point it is shown back to you and cannot be edited, because a prediction you could change after seeing the result would not prove anything.

Then you do the exercise on your own camera and record what actually happened. Afterwards you can note what surprised you and what you would change next time. The history keeps all of it in your own words.

An exercise brief explaining why it is different and who checks the result   Entering the settings to commit to before shooting   The result of an attempt, recorded as practice checked by the learner

Each exercise says up front how long it takes, whether it needs a camera, and who checks the result: the app, or you.

Two kinds of exercise

In some exercises you set something up yourself, so you already know what changed. Their purpose is to get an idea into your hands. Others show you drawings that IMAGECRAFT generated, so you have no way of knowing in advance what it did. Noticing an effect you did not arrange is a separate skill, and these exercises practise it.

Demonstration drawings: two views of upright blocks, and a row of identical markers at different sharpness

Demonstration drawings made by the app's own drawing code from inputs that are not used in any exercise.

Progress

IMAGECRAFT reports two things separately. One is what you have shown, meaning results that something other than your own judgement checked. The other is what you have practised, which also includes work only you could judge, such as whether a photograph matched what you intended.

Self-checked practice is used to decide what to suggest next. It is never presented as proof. There are no points, streaks or percentages.

Progress listing what has been shown and what has been practised, separately   A skill page in dark appearance

Equipment

You can tell IMAGECRAFT what you shoot with, and exercises adapt to it. A screen in your profile lists what your kit already lets you practise. If something on your path would need equipment you have not listed, the app says so plainly. It never names a product and does not suggest buying anything your path does not need.

What your kit unlocks: capabilities the listed camera provides   Journal with a practice entry

Privacy

The current pre-release build makes no network requests. It contains no analytics, tracking, advertising or crash-reporting code, links no third-party packages, and asks for no permissions (no camera, photo library or location access). Everything you write is stored on your device. The app's privacy manifest declares no tracking and no collected data. There is more detail in Private and offline by construction.

Accessibility

Screens support Dynamic Type up to the largest accessibility sizes. The light and dark palettes are chosen in pairs, and automated tests check text contrast against each background it is drawn on. Every generated drawing has a written description, and the UI tests include automated accessibility audits and pseudolocalisation. An independent accessibility review is planned before release and has not taken place yet.

Today screen at a large accessibility text size   Today screen in dark appearance

More screens

Welcome screen   Choosing goals during onboarding   A lesson on reading the direction of light

Learn: modules for perspective, composition and light   Practice: a recommended exercise and alternatives in other areas   Writing a journal entry about a practice session

How it is built

IMAGECRAFT is written in Swift with SwiftUI, SwiftData and Observation, and supports iOS 18 and later. The app has no third-party dependencies. Lessons and exercises are written separately from the app and validated before they are bundled. A new exercise in an existing format needs no new screens.

The test suites contain more than 550 unit tests and more than 70 UI tests. They have been run on simulators from iOS 18.0 to iOS 27, at default and accessibility text sizes, in light and dark appearance.

The engineering notes go into more detail:

Status

IMAGECRAFT is in pre-release development. A release candidate is being prepared. A small closed TestFlight beta is planned but has not started, and the app is not available on the App Store. See the roadmap and the changelog.

The screenshots come from the current development build and show a fictional learner.

Contact

For security reports, see SECURITY.md. Otherwise you can reach the author through GitHub.

© 2026 Andrei Bacescu. All rights reserved. See LICENSE.md.

About

An iOS photography education application under active development. This repository is the public showcase. The source code is private.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors