Je překvapivé že nikoho nenapadla nejjednodušší odpověď:
pokud má jít o “relativně jednoduchou appku” která ale bude “přistupovat k nativním funkcím WiFi, Camera, BT atd..” tak to prostě napsat ve standardních vývojových prostředích Xcode a Android Studio (ano, 2x). Ty jsou samy o sobě zadarmo.
Protože pokud “relativně jednoduchá” znamená přímočarý user interface a nekomplikované ovládání pomocí základních ovládacích prvků, tak ta duplicita nebude nijak extra náročná - a nativní funkce pro WiFi, Camera a BT apod se stejně budou podle platfomy lišit a bude to ta hlavní práce.
A ještě než se do toho pustíš: zjisti si co vlastně (hlavně na iOS) s BT a WiFi můžeš dělat aby ses do toho nepouštěl úplně zbytečně
Ano, i tuhle variantu zvažuju - i to bylo původně v plánu.
Myslel jsem, že multiplatformní vývoj má jen výhody a bude lepší ho použít, ale teď když o tom čtu tak zjišťuju že má i nevýhody a sdílení kódu nebejvá 100% (i ostatního kódu než UI).
V tomhle směru se bude muset zákazník rozhodnout sám. Řeknu jim výhody a nevýhody obou variant.
Požadovaná funkcionalita by měla být realizovatelná na obou platformách, protože Amíci a Frantíci už podobnou Appku mají pro Android i iOS.
I toho UI to je zřídka opravdu 100% a končívá to tím že musíš nějak ovládnout ne jednu, ani dvě ale tři vývojová prostředí (to multiplatformní plus obě nativní).
Moje zkušenost je že multiplatformní vývoj navrhují lidé spíš z ideologických nebo fanouškovských důvodů než praktických.
Když to děláš zvlášť, je tam asi trochu pomalejší nástup, ale pak máš zase přimou kontrolu nad tím co se ti tam děje a míň problémů při údržbě a rozvoji (zejména pokud to děláš přímočaře jenom v systémových frameworcích - to je další důležitá věc, nenech se zpočátku zlákat nabídkou různých 3rd party knihoven /jako Cococapods na iOS/ která nabízejí "řešení" nebo "vylepšení" networkingu, UI elementů apod. Systémové frameworky umí všechno a dnes už obvykle i přímočaře když se člověk trochu koukne a hlavně ty externí závislosti nejsou "zadarmo").
Xcode ti když zakládáš projekt přímo nabídne vytvoření základní kostry aplikace podle několika navigačních stylů (toolbar, navigation controller, single page, paged atp.) kterou zpočátku můžeš prostě jenom upravovat a doplňovat a až se rozkoukáš tak to třeba víc předělat podle sebe.