Offline and PWA he - msupino/NavigationApp GitHub Wiki

๐Ÿ‡ฌ๐Ÿ‡ง English

ืขื‘ื•ื“ื” ืœื ืžืงื•ื•ื ืช ื•ึพPWA

ื ื™ืชืŸ ืœื”ืชืงื™ืŸ ืืช NavAid ื›ึพPWA ื‘ึพiOS, Android ื•ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื”. ืœืื—ืจ ื˜ืขื™ื ื” ืžืงื•ื•ื ืช, ื”ึพservice worker ืžื’ื™ืฉ ืืช ืงื‘ืฆื™ ื”ืืคืœื™ืงืฆื™ื” ื•ื”ื ืชื•ื ื™ื ืฉื ืฉืžืจื•. ืžืื’ืจ ื ืงื•ื“ื•ืช ื”ื ื™ื•ื•ื˜ ื ืงื‘ืข ืœืคื™ ื”ืฉื›ื‘ื” (cvfr-route-graph.json, lsa-route-graph.json ืื• heli-route-graph.json). ืžืžื ื• ื”ื™ื™ืฉื•ื ื’ื•ื–ืจ ื ืงื•ื“ื•ืช ื“ื™ื•ื•ื—, ื’ื‘ื”ื™ ืงื˜ืขื™ื ื•ื ืงื•ื“ื•ืช ื—ื™ืœื•ืคื™ ืชื“ืจ.

ื›ืฉื”ื—ื™ื‘ื•ืจ ื—ื•ื–ืจ NavAid ืžืชืขื“ื›ืŸ ืžื™ื“ ื•ืœื ืจืง ื‘ื‘ื“ื™ืงื” ื”ื‘ืื”: ืืจื™ื—ื™ ืžืคื” ืฉื ื›ืฉืœื• ื‘ืœื™ ื—ื™ื‘ื•ืจ ื ื˜ืขื ื™ื ืžื—ื“ืฉ, NOTAM / SIGMET / AIRMET ื•ืžื–ื’ ื”ืื•ื•ื™ืจ ื ื˜ืขื ื™ื ืฉื•ื‘, ื•ื”ื•ื“ืขื” ืื•ืžืจืช ื”ื—ื™ื‘ื•ืจ ื—ื–ืจ: ื”ืžืคื”, ื”ื ื•ื˜ืืžื™ื ื•ืžื–ื’ ื”ืื•ื•ื™ืจ ืขื•ื“ื›ื ื•. ื–ื” ืชืœื•ื™ ื‘ืื•ืช ื”ื—ื™ื‘ื•ืจ ืฉืœ ื”ื˜ืœืคื•ืŸ, ื›ืš ืฉื‘-Wi-Fi ื‘ืœื™ ืื™ื ื˜ืจื ื˜ ื”ื•ื ื™ื›ื•ืœ ืœื”ื’ื™ืข ืžื•ืงื“ื; ื”ื‘ื“ื™ืงื” ื”ืงื‘ื•ืขื” ื›ืœ 10 ื“ืงื•ืช ืžืžืฉื™ื›ื”.

ืžื” "ืœื ืžืงื•ื•ืŸ" ื›ื•ืœืœ ื‘ื“ื™ื•ืง. ื”ืžืชื›ื ืŸ ืขื•ื‘ื“ ื‘ืœื™ ืจืฉืช โ€” ื”ืชืจืฉื™ื ืฉื”ื•ืจื“ืชื, ื”ืžืกืœื•ืœ, ื™ื•ืžืŸ ื”ื ื™ื•ื•ื˜ ื•ื”ื“ืคื™ื ืฉื›ื‘ืจ ืคืชื—ืชื. ืžื” ืฉื“ื•ืจืฉ ื—ื™ื‘ื•ืจ ื”ื•ื ื›ืœ ืžื” ืฉืžื™ืฉื”ื• ืื—ืจ ืžืคืจืกื ื‘ื–ืžืŸ ืฉืืชื ื˜ืกื™ื: ืžื–ื’ ืื•ื•ื™ืจ, NOTAM, ืชืขื‘ื•ืจื”, ืฉื›ื‘ื•ืช ื”ืœื•ื•ื™ื™ืŸ ื•ืžืคืช ื”ืจื—ื•ื‘ื•ืช, ื•ื“ืคื™ ืฉื“ื” ืฉืœื ื ืคืชื—ื• ืงื•ื“ื. ื‘ืขื‘ืจ ื ื›ืชื‘ ื›ืืŸ ืคื•ืขืœ ืœื’ืžืจื™ ืœืœื ืจืฉืช ืื—ืจื™ ื”ื˜ืขื™ื ื”, ื•ื–ื” ื”ื™ื” ื™ื•ืชืจ ืžืžื” ืฉื”ืžื•ืฆืจ ืขื•ืฉื”.

ืžืคืช ื”-CVFR ื ืฉืžืจืช ืœื-ืžืงื•ื•ืŸ ืขื‘ื•ืจื›ื

ื”ืžืคื” ืฉืื™ืชื” ื˜ืกื™ื ื›ื‘ืจ ืื™ื ื” ืžืฉื”ื• ืฉืฆืจื™ืš ืœื–ื›ื•ืจ ืœื”ื•ืจื™ื“. ื‘ืืชืจ ื”ื—ื™ NavAid ืฉื•ืžืจืช ืืช ื›ืœ ืžืคืช ื”-CVFR ื‘ืžื›ืฉื™ืจ ืื•ื˜ื•ืžื˜ื™ืช โ€” ื–ื•ืžื™ื 7โ€“13, ื”ื’ื™ืœื™ื•ืŸ ื›ื•ืœื•, ืœื ืจืง ื”ื—ืœืง ืฉื‘ืžืงืจื” ื”ืกืชื›ืœืชื ืขืœื™ื•. ื‘ื›ืœ ื”ืคืขืœื” ื”ื™ื ื‘ื•ื“ืงืช ืžื” ื›ื‘ืจ ืฉืžื•ืจ ื•ืžื•ืจื™ื“ื” ืจืง ืืช ื”ื—ืกืจ.

  • ื”ื™ื ืžืžืชื™ื ื” ืœื—ื™ื‘ื•ืจ ืžืชืื™ื. ื›ืฉ-offlineCvfrUnmeteredOnly ืคืขื™ืœ (ื‘ืจื™ืจืช ืžื—ื“ืœ), ื”ื”ื•ืจื“ื” ื”ืื•ื˜ื•ืžื˜ื™ืช ื ืžื ืขืช ื‘ืจืฉืช ืกืœื•ืœืจื™ืช, ื‘ื—ื™ื‘ื•ืจ ืฉืžื“ื•ื•ื— 2G/3G, ื•ื›ืฉืžืฆื‘ ื—ื™ืกื›ื•ืŸ ื‘ื ืชื•ื ื™ื ืคืขื™ืœ. ื”ืกื˜ื˜ื•ืก ืื– ืžืฆื™ื’ ืžืžืชื™ืŸ ืœื—ื™ื‘ื•ืจ.
  • ื”ืžืกืœื•ืœ ืงื•ื“ื. ืืจื™ื—ื™ื ื‘ืžืจื—ืง ืฉืœ ื›-1.5 ืืจื™ื—ื™ื ืžื”ืžืกืœื•ืœ ื”ืžืชื•ื›ื ืŸ ื ืžืฉื›ื™ื ืœืคื ื™ ืฉืืจ ื”ืืจืฅ, ืชื•ืš ืฉืžื™ืจืช ื”ืกื“ืจ ืžื–ื•ื ืจื—ื‘ ืœืฆืจ ื‘ืชื•ืš ื›ืœ ืงื‘ื•ืฆื”. ืฉื™ื ื•ื™ ื”ืžืกืœื•ืœ ืžืกื“ืจ ืืช ื”ืชื•ืจ ืžื—ื“ืฉ ืกื‘ื™ื‘ ื”ื—ื“ืฉ โ€” ื›ืš ืฉื”ืžืกื“ืจื•ืŸ ืฉืขื•ืžื“ื™ื ืœื˜ื•ืก ื‘ื• ืžื•ืฉืœื ืจืืฉื•ืŸ, ื’ื ืื ื”ื”ื•ืจื“ื” ื ืงื˜ืขืช.
  • ืจืง ื‘ื™ื™ืฆื•ืจ. ืชืฆื•ื’ื•ืช ืžืงื“ื™ืžื•ืช ืฉืœ PR, staging ื•ื”ืจืฆื•ืช ืžืงื•ืžื™ื•ืช ืœืขื•ืœื ืื™ื ืŸ ืžืชื—ื™ืœื•ืช ื”ืขื‘ืจื” ื’ื“ื•ืœื”; ื”ืŸ ื—ื•ืœืงื•ืช ืืช ืื•ืชื• origin ื•ืžื˜ืžื•ืŸ, ื•ืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืืกื•ืจ ืฉืชืฉื ื” ืืช ื”ื—ื‘ื™ืœื” ื”ืืžื™ืชื™ืช ืฉืœ ื˜ื™ื™ืก. ื”ื›ืคืชื•ืจ ื”ื™ื“ื ื™ ืขื“ื™ื™ืŸ ืขื•ื‘ื“ ืฉื.

ื—ืœื•ืŸ "ืžืคื•ืช ืœื ืžืงื•ื•ื ื•ืช"

ื‘ืงื˜ืข ืžืคื•ืช ื™ืฉ ื›ืคืชื•ืจ ืกื˜ื˜ื•ืก ืžืงื•ืฆืจ โ€” CVFR ืœื ืžืงื•ื•ืŸ: ื‘ื•ื“ืงโ€ฆ / ืžื•ื›ืŸ โœ“ / โฌ‡ ื”ื•ืจื“ืช CVFR โ€” 62%. ื”ื•ื ืคื•ืชื— ืืช ื—ืœื•ืŸ ืžืคื•ืช ืœื ืžืงื•ื•ื ื•ืช, ืฉืžืฆื™ื’ ื›ืžื” ืืจื™ื—ื™ื ืฉืžื•ืจื™ื ืžื•ืœ ื›ืžื” ื ื“ืจืฉื™ื, ืกืจื’ืœ ื”ืชืงื“ืžื•ืช ื•ืฉืชื™ ืคืขื•ืœื•ืช:

ืคืขื•ืœื” ืžื” ื”ื™ื ืขื•ืฉื”
โฌ‡ ื”ื•ืจื“ืช ืืจื™ื—ื™ CVFR ื—ืกืจื™ื ืžื•ืฉื›ืช ืจืง ืืช ืžื” ืฉื—ืกืจ, ืขื›ืฉื™ื•, ืœืœื ืชืœื•ืช ื‘ืกื•ื’ ื”ื—ื™ื‘ื•ืจ
ืžื—ื™ืงืช CVFR ืœื ืžืงื•ื•ืŸ ืžืกื™ืจื” ืืช ื”ืžืคื” ื”ืฉืžื•ืจื” ืžื”ืžื›ืฉื™ืจ. ื”ืชื—ื–ื•ืงื” ื”ืื•ื˜ื•ืžื˜ื™ืช ืžืชื—ื“ืฉืช ื‘ืคืชื™ื—ื” ื”ื‘ืื”

ืœื—ื™ืฆื” ืขืœ ื”ื›ืคืชื•ืจ ื”ืžืงื•ืฆืจ ื›ืฉื”ื›ื™ืกื•ื™ ืื™ื ื• ืฉืœื ื’ื ืžืชื—ื™ืœื” ืืช ื”ื”ื•ืจื“ื”, ืœื ืจืง ืคื•ืชื—ืช ืืช ื”ื—ืœื•ืŸ.

ืžืคื•ืช ื ื•ืกืคื•ืช, ื›ืžื” ืฉืชืจืฆื•

ืžืชื—ืช ืœื›ืจื˜ื™ืก ื”-CVFR ื”ื—ืœื•ืŸ ืžืฆื™ื’ ื›ืœ ืžืคื” ืื—ืจืช ืฉืืคืฉืจ ืœืฉืžื•ืจ, ื•ืืคืฉืจ ืœืฉืžื•ืจ ื›ืžื” ืฉืจื•ืฆื™ื ื‘ื‘ืช ืื—ืช:

ืžืคื” ืžื” ื ืฉืžืจ
ื ื™ื•ื•ื˜ ยท ื’ื•ื‘ื” ื ืžื•ืš ยท ืžืกื•ืงื™ื ื”ืžืคื” ื›ื•ืœื”, ื‘ืื•ืชื ื–ื•ืžื™ื ื›ืžื• CVFR. โฌ‡ ื”ื•ืจื“ื”, ื•ืื– ืคืก ื”ืชืงื“ืžื•ืช, ื”ื•ืจื“ืช ื”ืืจื™ื—ื™ื ื”ื—ืกืจื™ื ื•ืžื—ื™ืงื”
ื ืชื™ื‘ื™ ATS ืชืžื•ื ื” ืื—ืช, ื ืฉืžืจืช ื‘ืžื˜ืžื•ืŸ ืฉืœ ื”ืืคืœื™ืงืฆื™ื” (ื‘ืชื•ืš ื”ืืคืœื™ืงืฆื™ื” ื‘ื’ืจืกืื•ืช App Store / APK)
OpenFlightMaps ื”ืื–ื•ืจ ืฉืขืœ ื”ืžืกืš. ื‘ื•ื—ืจื™ื ืจืžืช ืคื™ืจื•ื˜ โ€” ืขื“ ื–ื•ื 8, 9, 10, 11 ืื• 12 โ€” ื›ืœ ืื—ืช ืขื ืžืกืคืจ ื”ืืจื™ื—ื™ื ื•ื”ื’ื•ื“ืœ ื”ืžืฉื•ืขืจ; ืจืžื•ืช ืžืขืœ 80,000 ืืจื™ื—ื™ื ืžืขื•ืžืขืžื•ืช. ืจื•ื‘ ืื™ืจื•ืคื” ื ื›ื ืกืช ืขื“ ื–ื•ื 10 ื‘ื›-1GB. ืฉื•ืžืจื™ื ื›ืžื” ืื–ื•ืจื™ื ืฉืจื•ืฆื™ื, ืœื›ืœ ืื—ื“ ื”ืชืงื“ืžื•ืช ื•ืžื—ื™ืงื” ืžืฉืœื•. ืžืขื•ืžืขื, ืขื ื”ืกื™ื‘ื”, ืžืขืœ ื™ืฉืจืืœ (ืื™ืŸ ื ืชื•ื ื™ื) ืื• ืœืื–ื•ืจ ืฉื›ื‘ืจ ื ืฉืžืจ ื‘ืจืžื” ื”ื–ื•

ื”ื”ื•ืจื“ื•ืช ืจืฆื•ืช ื‘ืžืงื‘ื™ืœ. ืžื—ื™ืงืช ื—ื‘ื™ืœื” ืื—ืช ืœืขื•ืœื ืœื ืžืกื™ืจื” ืืจื™ื— ืฉื—ื‘ื™ืœื” ืื—ืจืช ืขื“ื™ื™ืŸ ืžืฉืชืžืฉืช ื‘ื•, ื•ื ื™ืงื•ื™ CVFR ืžืฉืื™ืจ ืืช ืฉืืจ ื”ื—ื‘ื™ืœื•ืช. ื—ื‘ื™ืœื•ืช ืฉื‘ื—ืจืชื ื•ื”ื•ืจื“ืชืŸ ื ืงื˜ืขื” ืžื•ืฉืœืžื•ืช ื‘ื—ื™ื‘ื•ืจ ื”ืžืชืื™ื ื”ื‘ื, ื‘ืื•ืชื ืชื ืื™ื ื›ืžื• CVFR.

ื‘ื—ื™ื‘ื•ืจ ื‘ืœื‘ื“: ืœื•ื•ื™ื™ืŸ ื•-OpenStreetMap. ื”ืกืคืงื™ื ืฉืœื”ืŸ ืื™ื ื ืžืชื™ืจื™ื ื”ื•ืจื“ื” ืœืฉื™ืžื•ืฉ ืœื ืžืงื•ื•ืŸ (ืžื“ื™ื ื™ื•ืช ื”ืืจื™ื—ื™ื ืฉืœ OpenStreetMap ืื•ืกืจืช ื–ืืช ื‘ืžืคื•ืจืฉ), ื•ื”ื—ืœื•ืŸ ืื•ืžืจ ื–ืืช.

ืžืคืช ื”ืขื•ืœื ืœื ืฆืจื™ื›ื” ื”ื•ืจื“ื”. ืงื•ื•ื™ ื”ืžืชืืจ ื•ืฉืžื•ืช ื”ืžื“ื™ื ื•ืช ื”ื ื—ืœืง ืžื”ืืคืœื™ืงืฆื™ื” ื•ืžืฆื•ื™ืจื™ื ืชืžื™ื“ ืžืชื—ืช ืœื›ืœ ืžืคื” โ€” ืจืื• ืฉื›ื‘ื•ืช ืžืคื”. ื‘ืœื™ ื—ื™ื‘ื•ืจ ื•ื‘ืœื™ ื—ื‘ื™ืœื”, ื”ืžืคื” ืขื“ื™ื™ืŸ ืžืจืื” ืื™ืคื” ืืชื.

ื”ืื—ืกื•ืŸ ื ืžืฆื ื‘ืžื˜ืžื•ืŸ ื”ื™ื™ืขื•ื“ื™ navaid-tiles-v1, ืฉืžืžื•ืœื ืขืœ ื™ื“ื™ offline-tiles.js ืžื”ืžืจืื” ื”ืชื•ืžื›ืช CORS. ื”-service worker ืžื’ื™ืฉ ื‘ืงืฉืช ืืจื™ื— ืชื•ืืžืช ืžื”ืžื˜ืžื•ืŸ ืชื—ื™ืœื” ื›ืฉื”ื—ื‘ื™ืœื” ืžื›ื™ืœื” ืื•ืชื”, ื•ืคื•ื ื” ืœืจืฉืช ื‘ืžืงืจื” ืฉืœ miss. ื”ื—ื‘ื™ืœื” ืฉื•ืจื“ืช ืฉื“ืจื•ื’ื™ service worker ื•ื ืžื—ืงืช ืจืง ื“ืจืš ืžื—ื™ืงืช CVFR ืœื ืžืงื•ื•ืŸ ืื• ื‘ื›ืœื™ ืื—ืกื•ืŸ ื”ื“ืคื“ืคืŸ.

ืžืคืชื— ื‘ืจื™ืจืช ืžื—ื“ืœ
offlineAutoCvfr true ืฉืžื™ืจืช ืžืคืช CVFR ื–ืžื™ื ื” ืœื-ืžืงื•ื•ืŸ
offlineCvfrUnmeteredOnly true ืขื“ื›ื•ืŸ ืจืง ื‘ื—ื™ื‘ื•ืจ ืžืชืื™ื
offlineCvfrMinZoom 7 ื”ื–ื•ื ื”ืจื—ื‘ ื‘ื™ื•ืชืจ ืฉื ืฉืžืจ
offlineCvfrMaxZoom 13 ื”ื–ื•ื ื”ืงืจื•ื‘ ื‘ื™ื•ืชืจ ืฉื ืฉืžืจ

ืžื˜ืžื•ืŸ ื”ืืคืœื™ืงืฆื™ื” ื ืคืจื“: ื ื™ื•ื•ื˜ HTML ื”ื•ื network-first ืขื fallback, ื•ื ื›ืกื™ื ืขื ื’ืจืกื” ื”ื cache-first. ืจืื• Service Worker.

ืื™ื™ืคื•ืŸ ื•ืื™ื™ืคื“

ื”ืžืื’ืจ ืชื•ืžืš ื‘ืžืขื˜ืคืช ืคื™ืชื•ื— ืžืจื•ื—ืงืช ื•ื‘ื’ืจืกืช iOS ืืจื•ื–ื”. ืœื–ืžื™ื ื•ืช ื‘ึพApp Store ืื• ื‘ึพTestFlight ื™ืฉ ืœื‘ื“ื•ืง ืืช ื”ื•ื“ืขืช ื”ื”ืคืฆื” ื”ืขื“ื›ื ื™ืช ืฉืœ ื”ืคืจื•ื™ืงื˜; ืชืžื™ื›ื” ื‘ื‘ื ื™ื™ื” ืื™ื ื” ืžืขื™ื“ื” ื›ืฉืœืขืฆืžื” ืขืœ ื–ืžื™ื ื•ืช ืœื”ืคืฆื”.

ื‘ึพSafari ืืคืฉืจ ืœื‘ื—ื•ืจ ื”ื•ืกืฃ ืœืžืกืš ื”ื‘ื™ืช. ื™ืฉ ืœื”ืฉืื™ืจ ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื—ื–ื™ืช ืขื‘ื•ืจ ืžื™ืงื•ื ื•ื”ืชืจืื•ืช; ืื™ืŸ ืœื”ืกืชืžืš ืขืœ ืžืขืงื‘ ื‘ืจืงืข ืื• ื›ืฉื”ืžืกืš ื ืขื•ืœ ื‘ึพiOS.

ืœืฉืืœื•ืช ื”ืคืฆื”: [email protected].

ืžืกืš ื”ื˜ืขื™ื ื”

ืขื•ื“ ืœืคื ื™ ืฉื”ื’ื™ืขื• ื’ื™ืœื™ื•ืŸ ื”ืกื’ื ื•ืŸ ืื• ืงื•ื“ ื”-JS, index.html ื›ื‘ืจ ืžืฆื™ื™ืจ ืืช ืกืžืœ NavAid โ€” ื ืงื•ื“ืช ื™ืฆื™ืื”, ื”ืงื˜ืข ืฉืžื˜ืคืก ืžืžื ื”, ื•ื”ืžื˜ื•ืก ืฉื˜ืก ืื•ืชื• โ€” ื•ืžื˜ื•ืก ืฉื ื™, ืงื˜ืŸ ื™ื•ืชืจ, ื˜ืก ืกื‘ื™ื‘ื• ื”ืงืคื”. ื”ื”ืงืคื” ื”ื™ื ืžืขื’ืœ ืืžื™ืชื™ ื‘ืžื™ืฉื•ืจ ื ื˜ื•ื™ ืžื”ืžืฆืœืžื”, ื•ืœื›ืŸ ื”ื“ืคื“ืคืŸ ืžืงืฆืจ ืื•ืชื” ืœืืœื™ืคืกื”, ืžืงื˜ื™ืŸ ืืช ื”ืžื˜ื•ืก ืขื ื”ืžืจื—ืง, ื•ืžืกืชื™ืจ ืื•ืชื• ืžืื—ื•ืจื™ ื”ืกืžืœ ื‘ืฆื“ ื”ืจื—ื•ืง ืฉืœ ื”ืคื ื™ื™ื”.

  • ื”ืžืกืš ืžื•ืฆื’ ืœืคื—ื•ืช 2 ืฉื ื™ื•ืช (bootLogoMinMs). ื›ืฉื”ืžื˜ืžื•ืŸ ื—ื ื”ืžืคื” ืžืฆื™ื™ืจืช ื›ืžื” ืžืื•ืช ืืœืคื™ื•ืช ืฉื ื™ื™ื” ืื—ืจื™ ื”ืขืžื•ื“, ื•ื”ืกืžืœ ื”ื™ื” ื—ื•ืœืฃ ื—ืฆื™-ืžืฆื•ื™ืจ. ื–ื• ืจืฆืคื”, ืœื ื”ืžืชื ื”: ืžืคื” ืื™ื˜ื™ืช ืขื“ื™ื™ืŸ ืžื ืงื” ืืช ื”ืžืกืš ื‘ืจื’ืข ืฉื”ื™ื ืžื’ื™ืขื”, ื•ืคืกืง ื–ืžืŸ ืฉืœ 6 ืฉื ื™ื•ืช ืžื ืงื” ืื•ืชื• ื‘ื›ืœ ืžืงืจื”.
  • ื‘ืจื’ืข ืฉื”ืžืคื” ืžื•ื›ื ื” ืžืื—ื•ืจื™ื•, ื”ืžืกืš ืžืคืกื™ืง ืœืงืœื•ื˜ ืžื’ืข, ื›ืš ืฉื”ื ื’ื™ืขื” ื”ืจืืฉื•ื ื” ื‘ื”ืคืขืœื” ืžื”ื™ืจื” ืžื’ื™ืขื” ืœืืคืœื™ืงืฆื™ื” ื•ืœื ืœืžืกืš ื”ื˜ืขื™ื ื”.
  • prefers-reduced-motion: reduce ืžืฉืื™ืจ ืืช ื”ืกืžืœ ื•ืืช ื”ื”ืงืคื” ื•ืขื•ืฆืจ ืืช ื”ืชื ื•ืขื”.

ืื•ืชื• ืกืžืœ ื ื•ืฆืจ ืœื›ืœ ื”ืื™ื™ืงื•ื ื™ื ืฉืžื”ื ืžืชืงื™ื ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” โ€” favicon, ืฉื ื™ ืื™ื™ืงื•ื ื™ ื”-PWA (ื‘ืชื•ืš ืžืขื’ืœ ื”ื‘ื˜ื™ื—ื•ืช ืฉืœ maskable), ืื™ื™ืงื•ืŸ ื”ืžืฉื’ืจ ืฉืœ ืื ื“ืจื•ืื™ื“ ื‘ื’ืจืกืื•ืช ืจื™ื‘ื•ืข / ืขื’ื•ืœ / adaptive ื‘ื—ืžืฉ ืฆืคื™ืคื•ื™ื•ืช, ื•ืžืกื›ื™ ื”ืคืชื™ื—ื” โ€” ืขืœ ื™ื“ื™ scripts/make-icons.mjs, ืžืชื™ืื•ืจ ืื—ื“, ื›ืš ืฉื”ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ืชืคืฆืœ ื–ื” ืžื–ื”.

ืืคืœื™ืงืฆื™ื™ืช ืžื•ื‘ื™ื™ืœ (Android APK)

ื”ืชืงื ื”. ื”ึพAPK ื ืžืฆื ื‘ึพGitHub Releases (android-v*). ืคื•ืชื—ื™ื ืื•ืชื• ื•ืžืืฉืจื™ื ื”ืชืงื ืช ืืคืœื™ืงืฆื™ื•ืช ืœื ืžื•ื›ืจื•ืช; APK ื—ื“ืฉ ืžื•ืชืงืŸ ืžืขืœ ื”ื™ืฉืŸ ื•ืฉื•ืžืจ ืืช ื”ืžืกืœื•ืœื™ื โ€” ืืœ ืชืกื™ืจื• ืงื•ื“ื, ื–ื” ืžื•ื—ืง ืื•ืชื. ืขื Obtainium ืžืงื‘ืœื™ื ื”ื•ื“ืขื” ืขืœ ื›ืœ ื’ืจืกื” ื—ื“ืฉื” (ืจืื• README).

ืขื•ืœื” ื‘ืœื™ ืจืฉืช ื‘ื›ืœืœ. ืžืื– 1.9 ื›ืœ ื”ืืคืœื™ืงืฆื™ื” ื‘ืชื•ืš ื”ึพAPK, ื™ื—ื“ ืขื:

  • ืžืคืช ื”ึพCVFR ื‘ืจืžื•ืช 7โ€“12 (ื›ึพ1,500 ืืจื™ื—ื™ื) โ€” ื‘ื”ืคืขืœื” ื”ืจืืฉื•ื ื” ื”ื ื’ื ืžื•ืขืชืงื™ื ืœืžืื’ืจ ื”ืžืคื•ืช ื”ืœืึพืžืงื•ื•ื ื•ืช; ืจืžื” 13 ืขื“ื™ื™ืŸ ื‘ื”ื•ืจื“ื” ื‘ึพWi-Fi;
  • ื”ื”ื’ื“ืจื•ืช ืฉืœ ื”ื™ื•ื โ€” ืขื•ืชืง ืฉืœ ื”ึพgist ื”ื—ื™ ืžืจื’ืข ื‘ื ื™ื™ืช ื”ึพAPK, ื›ืš ืฉื˜ืœืคื•ืŸ ืฉืžืขื•ืœื ืœื ื”ื™ื” ืžื—ื•ื‘ืจ ืขื•ืœื” ืื™ืชืŸ (ื•ืื—ืจื™ื• ื”ืขื•ืชืง ื”ืื—ืจื•ืŸ ืฉื”ื˜ืœืคื•ืŸ ื”ื•ืจื™ื“, ื•ืื– ื”ึพgist ื”ื—ื™, ื›ืœ ืื—ื“ ื’ื•ื‘ืจ ืขืœ ืงื•ื“ืžื•).

ื”ื™ื ืžื•ื’ืฉืช ื‘ื›ืชื•ื‘ืช https://navaid.supino.org ื‘ืชื•ืš ื”ื˜ืœืคื•ืŸ, ื›ืš ืฉืžืกืœื•ืœื™ื, ื”ืงืœื˜ื•ืช ื•ื”ื’ื“ืจื•ืช ืฉื ืฉืžืจื• ื‘ึพAPK ื”ื™ืฉืŸ (ืฉื˜ืขืŸ ืืช ื”ืืชืจ) ื”ื ืื•ืชื ืืœื”. ื“ืคื™ ื”ื’ื™ืฉื” ื ื˜ืขื ื™ื ืžึพGitHub; ื”ึพservice worker ื”ื™ืฉืŸ ืžื•ืกืจ.

ืขื“ื›ื•ื ื™ื ื‘ืœื™ APK ื—ื“ืฉ. ื›ืœ ืคืจื™ืกื” ืžืคืจืกืžืช ื—ื‘ื™ืœืช ืขื“ื›ื•ืŸ. ื”ืืคืœื™ืงืฆื™ื” ืžื•ืจื™ื“ื” ืื•ืชื” ืœื‘ื“ ื‘ึพWi-Fi ื•ืขื•ื‘ืจืช ืืœื™ื” ื‘ื”ืคืขืœื” ื”ื‘ืื” โ€” ืœืขื•ืœื ืœื ื‘ืืžืฆืข ื˜ื™ืกื”; ื—ื‘ื™ืœื” ืฉืœื ืขื•ืœื” ืžื•ื—ื–ืจืช ืœืงื•ื“ืžืช. ืขื“ื›ื•ื ื™ื ืžืžืชื™ื ื™ื ืขื“ ืฉื”ืืจื™ื—ื™ื ื”ืžื•ื‘ื ื™ื ื”ื•ืขืชืงื• (ื”ืขืชืงื” ืฉืœื ื”ื•ืฉืœืžื”, ืœืžืฉืœ ื–ื™ื›ืจื•ืŸ ืžืœื, ืžืคืกื™ืงื” ืœืขื›ื‘ ืื•ืชื). ื”ื’ื“ืจื•ืช โ† ื’ืจืกืช ื”ืืคืœื™ืงืฆื™ื” ืžืฆื™ื’ื” ืืช ื”ื’ืจืกื” ื•ืื•ืžืจืช ืœืžื” ื”ืขื“ื›ื•ืŸ ืžื—ื›ื”:

  • ืžืขื•ื“ื›ื ืช (ื‘ื“ื•ืง ืฉื•ื‘);
  • ื™ืฉ ืขื“ื›ื•ืŸ ยท 40 MB โ€” ื™ื•ืจื“ ืžืขืฆืžื• ื‘-Wi-Fi, ืื• โ€ฆ ืื—ืจื™ ืฉื”ืขืชืงืช ื”ืžืคื•ืช ืชืกืชื™ื™ื ืžื™ื“ ืื—ืจื™ APK ื—ื“ืฉ (ื”ื•ืจื“ ืขื›ืฉื™ื• ืœื•ืงื— ืื•ืชื• ืžื™ื“ โ€” ื’ื ื‘ื—ื‘ื™ืœืช ื’ืœื™ืฉื”, ืื—ืจื™ ืฉืืœื” โ€” ืขื ืคืก ื”ืชืงื“ืžื•ืช);
  • ืžื•ืจื™ื“โ€ฆ 45%, ืขื ืคืก ื”ื”ืชืงื“ืžื•ืช ื•ื‘ืœื™ ื›ืคืชื•ืจ โ€” ื‘ื™ืŸ ืื ืœื—ืฆืชื ื”ื•ืจื“ ืขื›ืฉื™ื• ื•ื‘ื™ืŸ ืื ื”ืืคืœื™ืงืฆื™ื” ื”ืชื—ื™ืœื” ืžืขืฆืžื” ื‘-Wi-Fi; ื‘ืงืฉื” ื ื•ืกืคืช ื‘ื™ื ืชื™ื™ื ืžืฆื˜ืจืคืช ืœื”ื•ืจื“ื” ื”ื–ื• ื•ืœื ืžื•ืจื™ื“ื” ืืช ืื•ืชื” ื—ื‘ื™ืœื” ืคืขืžื™ื™ื;
  • ื”ืขื“ื›ื•ืŸ ืžื•ื›ืŸ: ื”ืคืขืœื” ืžื—ื“ืฉ ืชื•ืฆืข ื›ืฉื”ืžื™ืงื•ื ื™ืคืกื™ืง ืœื”ื™ื•ืช ืžื•ืฆื’, ืื• ื‘ื”ืคืขืœื” ื”ื‘ืื” (ื”ืคืขืœ ืžื—ื“ืฉ ืขื›ืฉื™ื•).

ื”ื™ื ื‘ื•ื“ืงืช ืฉื•ื‘ ื‘ื›ืœ ืคืขื ืฉืžืชื—ื‘ืจื™ื ืœ-Wi-Fi โ€” ื’ื ืžื™ื“ ืื—ืจื™ ื”ื”ืคืขืœื”, ืœืคื ื™ ื˜ื™ืกื” โ€” ื•ื›ืฉื”ืืคืœื™ืงืฆื™ื” ื—ื•ื–ืจืช ืœืžืกืš ืื—ืจื™ 30 ื“ืงื•ืช, ืœื ืจืง ืคืขื ืื—ืช ื‘ื”ืคืขืœื”; ื”ืฉื•ืจื” ืžืชืจืขื ื ืช ื‘ื›ืœ ืฉื™ื ื•ื™ ืจืฉืช, ื›ืš ืฉื”ื™ื ืื•ืžืจืช ืืช ืžื” ืฉื ื›ื•ืŸ ืขื›ืฉื™ื•. APK ื—ื“ืฉ ื ื“ืจืฉ ืจืง ืœืฉื™ื ื•ื™ื™ื ื ื™ื™ื˜ื™ื‘.

ื”ื™ื ืฉื•ืืœืช. ื›ืฉืขื“ื›ื•ืŸ ื”ื•ืจื“, ื”ืืคืœื™ืงืฆื™ื” ืฉื•ืืœืช ืคืขื ืื—ืช ืœื›ืœ ื’ืจืกื”: ืขื“ื›ื•ืŸ ืžื•ื›ืŸ โ€” ื”ืคืขืœ ืžื—ื“ืฉ ืขื›ืฉื™ื• / ืื—ืจ ื›ืš. ื”ืคืขืœ ืžื—ื“ืฉ ืขื›ืฉื™ื• ืขื•ื‘ืจ ืœื’ืจืกื” ื”ื—ื“ืฉื” ื‘ืฉืชื™ื™ื-ืฉืœื•ืฉ ืฉื ื™ื•ืช ื•ืฉื•ืžืจ ืืช ื”ืžืกืœื•ืœ ื•ื”ื”ื’ื“ืจื•ืช; ืื—ืจ ื›ืš ืžืฉืื™ืจ ืื•ืชื• ืœื”ืคืขืœื” ื”ื‘ืื”. ืžื’ืจืกื” 1.23, APK ื—ื“ืฉ ืžื•ื›ืจื– ื‘ืื•ืชื” ื“ืจืš, ืคืขื ืื—ืช: NavAid 1.24 ื–ืžื™ื ื” โ€” ื”ื•ืจื“ / ืื—ืจ ื›ืš; ื”ื•ืจื“ ืคื•ืชื— ืืช ื“ืฃ ื”ื’ืจืกื”, ื”ื“ืคื“ืคืŸ ืžื•ืจื™ื“ ืื•ืชื”, ื•ืžืชืงื™ืŸ ื”ืื ื“ืจื•ืื™ื“ ืžืชืงื™ืŸ ืื•ืชื” ืžืขืœ ื”ืืคืœื™ืงืฆื™ื” (ื›ืคืชื•ืจ ืคืชื— ืฉืœื• ื”ื•ื ื”ื”ืคืขืœื” ืžื—ื“ืฉ). ืืฃ ืื—ืช ืžื”ืฉืืœื•ืช ืœื ื ืฉืืœืช ื‘ื–ืžืŸ ื”ืงืœื˜ื”, ื”ืฆื’ืช ืžื™ืงื•ื ืื• ื—ื™ื‘ื•ืจ ืœืกื™ืžื•ืœื˜ื•ืจ โ€” ื”ื™ื ืžืžืชื™ื ื” ืขื“ ืฉื–ื” ื ื’ืžืจ.

ื’ื•ื“ืœ ื’ื•ืคืŸ. ื’ื•ื“ืœ ื”ื’ื•ืคืŸ ืฉืœ ื”ื˜ืœืคื•ืŸ (ื”ื’ื“ืจื•ืช โ† ืชืฆื•ื’ื”) ืžื’ื“ื™ืœ ืืช ื›ืœ ื”ื˜ืงืกื˜ ื‘ืืคืœื™ืงืฆื™ื” ื‘ืื•ืชื” ืžื™ื“ื”; ื›ืคืชื•ืจื™ ืฉืžื•ืจ / ื”ืžืกืœื•ืœื™ื ืฉืœื™ ื ืขืจืžื™ื ืื—ื“ ื‘ื›ืœ ืฉื•ืจื” ื›ืฉื”ืžื™ืœื™ื ื›ื‘ืจ ืœื ื ื›ื ืกื•ืช.

GPS ื‘ืจืงืข ื•ื›ื ื™ืกื” ืžืงื•ืจื™ืช ืœึพDrive ื”ื ื—ืœืง ืžื”ึพAPK.

ืคืจื˜ื™ื•ืช ื•ื–ืจื™ืžื•ืช ืžื™ื“ืข ื—ื™ืฆื•ื ื™ื•ืช

ื”ืขืจื™ื›ื” ืžืงื•ืžื™ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืืš ืžื™ื“ืข ื ืฉืœื— ื›ืืฉืจ ื”ืžืฉืชืžืฉ ืžืคืขื™ืœ ืชื›ื•ื ื”: ืžืกืœื•ืœื™ื ื•ื”ื’ื“ืจื•ืช ืžื•ืจืฉื•ืช ืœึพGoogle Drive, prompt/context ืœืกืคืง AI ืฉื ื‘ื—ืจ, ืคืจื˜ื™ ืชื›ื ื™ืช ื˜ื™ืกื” ืœืฉื™ืจื•ืช ื”ื”ื’ืฉื” ื•ื‘ืงืฉื•ืช ืœื ืชื•ื ื™ ืชืขื•ืคื”/ืžื–ื’ ืื•ื•ื™ืจ ื—ื™ื™ื. ื‘ืงืฉื•ืช ืจื’ื™ืœื•ืช ืœื ื›ืกื™ ื”ืืคืœื™ืงืฆื™ื” ื•ืœืžืคื•ืช ื—ื™ืฆื•ื ื™ื•ืช ืžืชื‘ืฆืขื•ืช ืœืคื™ ื”ืฆื•ืจืš. ื‘ื ื•ืกืฃ, ื‘ื–ืžืŸ ื”ืคืขืœื” ืžืชื‘ืฆืขืช ืื•ื˜ื•ืžื˜ื™ืช ื‘ืงืฉื” ืœืงื•ื‘ืฅ ื”ื’ื“ืจื•ืช tuning ืงื˜ืŸ ื‘ึพGitHub Gist, ืืœื ืื ื”ื›ืชื•ื‘ืช ื›ื•ืœืœืช ?nogist ืื• ?gist=0; ื”ื‘ืงืฉื” ืื™ื ื” ืฉื•ืœื—ืช ืžืกืœื•ืœ ืื• ืคืจื•ืคื™ืœ. ืืชืจ ื”ื™ื™ืฆื•ืจ ื”ืฆื™ื‘ื•ืจื™ ื˜ื•ืขืŸ Google Analytics; ืืคืœื™ืงืฆื™ื•ืช ื ื™ื™ื˜ื™ื‘, staging, ืชืฆื•ื’ื•ืช ืžืงื“ื™ืžื•ืช ื•ื”ืจืฆื” ืžืงื•ืžื™ืช ืžื•ื—ืจื’ื™ื. ืจืื• ืžื“ื™ื ื™ื•ืช ื”ืคืจื˜ื™ื•ืช. ืžืคืชื—ื•ืช API ื•ื›ืชื•ื‘ื•ืช ื™ืขื“ ื ืฉืืจื™ื ื‘ืžื›ืฉื™ืจ. ืงื•ื‘ืฆื™ BYOP ืฆื™ื‘ื•ืจื™ื™ื ื•ืžื•ื’ืฉื™ื ืžืžืจื—ื‘ docs/byop/ ื”ื™ืฆื™ื‘.

ื’ืจืกืช ื”-App Store ื ื•ืฉืืช ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ืชื•ื›ื”

ืžืขื˜ืคืช ื”ืคื™ืชื•ื— ื˜ื•ืขื ืช ืืช ื”ืืชืจ ื”ื—ื™. ื”ึพAPK (ืœืžืขืœื”) ื•ื’ืจืกืช ื”ื”ืคืฆื” ืœึพiOS ืื•ืจื–ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ืžื›ืฉื™ืจ ื•ืžื•ืฉื›ืช ืžื”ืจืฉืช ื ืชื•ื ื™ื ื•ื—ื‘ื™ืœื•ืช ืขื“ื›ื•ืŸ ืžืื•ืžืชื•ืช. ืงื™ื•ืžื• ืฉืœ ืงื•ื“ ื”ืืจื™ื–ื” ื‘ืžืื’ืจ ืื™ื ื• ืžืขื™ื“ ืขืœ ื–ืžื™ื ื•ืช ื‘ึพApp Store ืื• ื‘ึพTestFlight.

ืฉืชื™ ื”ืฉืœื›ื•ืช ืฉื›ื“ืื™ ืœื”ื›ื™ืจ:

  • ืชืจืฉื™ืžื™ื ืœื ืžืงื•ื•ื ื™ื ื ืฉืžืจื™ื ืฉื ืื—ืจืช. ื”-Cache API ืื™ื ื• ื–ืžื™ืŸ ื‘ืžืงื•ืจ ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืขืฆืžื”, ื•ืœื›ืŸ ืืจื™ื—ื™ ื”-CVFR ืฉื”ื•ืจื“ื• ื ืฉืžืจื™ื ื‘ืชื™ืงื™ื™ืช ื”ืืคืœื™ืงืฆื™ื” ื“ืจืš ืชื•ืกืฃ ื”ืงื‘ืฆื™ื, ื•ื”ืžืคื” ื•ื”ื–ื›ื•ื›ื™ืช ื”ืžื’ื“ืœืช ืงื•ืจืื•ืช ืžืฉื. ืื•ืชื• ืชืจืฉื™ื, ืื•ืชื” ื”ื•ืจื“ื”, ื‘ืœื™ service worker.
  • ืขื“ื›ื•ื ื™ ื•ื•ื‘. ื”ื’ืจืกื” ื”ืืจื•ื–ื” ื‘ื•ื“ืงืช ืื ื™ืฉ ื—ื‘ื™ืœืช ื•ื•ื‘ ื—ื“ืฉื”, ืžืืžืชืช ืื•ืชื”, ื•ืžื›ื™ื ื” ืื•ืชื” ืœื”ืคืขืœื” ื”ืงืจื” ื”ื‘ืื” โ€” ืœื ื‘ืืžืฆืข ื˜ื™ืกื” ื•ืœื ื‘ืจืฉืช ืกืœื•ืœืจื™ืช. ื—ื‘ื™ืœื” ืฉืœื ืขื•ืœื” ืžื•ื—ื–ืจืช ืœื–ื• ืฉื›ืŸ ืขืœืชื”, ื•ื‘ืกื•ืฃ ืœื–ื• ืฉ-Apple ื‘ื“ืงื”. ืฉื™ื ื•ื™ื™ื ื ื™ื™ื˜ื™ื‘ื™ื™ื โ€” ืชื•ืกืคื™ื, ื”ืจืฉืื•ืช, ืฉื“ืจื•ื’ SDK โ€” ืขื“ื™ื™ืŸ ื“ื•ืจืฉื™ื ืฉื—ืจื•ืจ.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ