Mobilapp-frissítés áruházi várakozás nélkül
A beléptető appomnál nem mindegy, mikor frissül. Ha egy rendezvény közepén újraindulna az alkalmazás, a sor megáll. Ugyanakkor a kisebb javításokért nem akarok minden alkalommal áruházi jóváhagyásra várni.
Frissítés a levegőben (OTA)
Az Expo frissítési szolgáltatásával a JavaScript-oldali változások az áruházi kiadás nélkül jutnak el a telefonokra. Az app csendben megnézi, van-e új verzió, letölti, és a következő hidegindításkor lép életbe. Futás közben nem töltök újra semmit.
export async function checkForUpdateSilently(): Promise<void> {
// Release builds only: updates are disabled in dev clients and Expo Go.
if (__DEV__ || !Updates.isEnabled) return;
try {
const res = await Updates.checkForUpdateAsync();
if (res.isAvailable) {
// Downloaded now, applied on the NEXT cold start,
// so a running check-in is never interrupted by a reload.
await Updates.fetchUpdateAsync();
}
} catch {
// network error: not important, try again next time
}
}
Kivonat valódi kódból, anonimizálva.
Mit nem tud
- Natív változást nem szállít: új modul, engedély, ikon vagy a konfigurációs bővítmények módosítása új áruházi buildet igényel.
- Fejlesztői módban és az Expo Go alkalmazásban ki van kapcsolva, csak kiadási buildben fut.
- A hálózati hibát nem kezeli külön: ha nem sikerül, majd legközelebb próbálkozik.
A szabály
Ami csak logika vagy felület, az OTA-val megy. Ami a telefon képességeit érinti, az áruházi kiadással. Így a nagy kiadások ritkák, a javítások gyorsak, és beléptetés közben sosem frissül semmi.
Hasonló problémán dolgozol?
Ha elakadtál, vagy átnéztetnéd a megoldásodat, írj, szívesen megnézem.
Írok neked →További cikkek
Mikor szabad újrapróbálni egy hívást?
Egy egyszerű szabály, ami megakadályozza, hogy valaki kétszer lépjen be: csak az ismételhető hívást próbáld újra.
Elolvasom →Nagy fájlok feltöltése megszakadás nélkül Laravelben
Hogyan oldottam meg a nagy videók feltöltését úgy, hogy egy megszakadt kérés ne vigye el az egész feltöltést.
Elolvasom →