Возможно, вы захотите исследовать Nuitka . Он использует исходный код python и преобразует его в вызовы API C ++. Затем он компилируется в исполняемый двоичный файл (ELF в Linux). Он существует уже несколько лет и поддерживает широкий спектр версий Python.
Вы, вероятно, также получите повышение производительности, если будете использовать его. Рекомендуется.
Почему бы просто не поместить изображения в общую папку в системе контроля версий, чтобы обе сборки могли получить к ней доступ? Это обычный способ сделать это. Использование S3 (или любого другого сервера) будет работать, если вы хотите загрузить его во время выполнения, но, поскольку вы попытались включить его в систему контроля версий, кажется, что вы хотите, чтобы он был частью сборки.
Что касается пользовательского интерфейса, Android и iOS имеют совершенно разные пользовательские интерфейсы и способы работы с ним. На самом деле, если вы не хотите использовать HTML-приложение, вы собираетесь написать два разных интерфейса. Пользовательские интерфейсы являются наименее доступной частью мобильного приложения. По крайней мере, для бизнес-логики у вас есть несколько вариантов (в худшем случае вы всегда можете использовать C, который работает на обоих).