{
 "id": 36910,
 "slug": "2024-05-11_desaroya-un-app-ios-nativo",
 "url": "https://agents.willem.com/pap/posts/2024-05-11_desaroya-un-app-ios-nativo/",
 "source_url": "https://willem.com/pap/2024-05-11_desaroya-un-app-ios-nativo/",
 "language": "pap",
 "date": "2024-05-11",
 "published": "2024-05-11T00:00:00+02:00",
 "created": "2025-06-26T22:09:15.492000+02:00",
 "updated": "2026-10-20T09:22:32.389000+02:00",
 "title": "Desaroyá un app iOS nativo",
 "subtitle": "Traha un tracker pa pidal i kore",
 "summary": "Komo un proyekto chikitu na banda, metí entre mi trabou normal, mi a traha riba algu di interes personal: un app nativo di iOS pa sigui entrenamentu. Mi a kier hasi mi smartwatch obsoletu i usa mi telefòn pa sigui entrenamentu. Kon difísil e por ta pa kolektá dato detaya di sensor ku API nativo di Swift?",
 "topics": [
  "AI",
  "apple",
  "bike",
  "creating",
  "data",
  "design",
  "gran fondo",
  "health",
  "heart",
  "minimal",
  "programming",
  "running",
  "sensors",
  "sport",
  "watch"
 ],
 "author": {
  "name": "Willem L. Middelkoop",
  "url": "https://willem.com"
 },
 "provenance": {
  "kind": "model",
  "method": "Claude Sonnet, two passes (translation, then proofreading) against a glossary; Curaçao/Bonaire (FPI) spelling, no dictionary available",
  "date": "2026-10-20",
  "reviewed_by_native_reader": false,
  "language": "pap",
  "source_language": "en"
 },
 "translations": [
  {
   "language": "en",
   "title": "Developing a native iOS app",
   "url": "https://agents.willem.com/en/posts/2024-05-11_developing-a-native-ios-app/",
   "source_url": "https://willem.com/en/2024-05-11_developing-a-native-ios-app/"
  },
  {
   "language": "nl",
   "title": "Het ontwikkelen van een native iOS app",
   "url": "https://agents.willem.com/nl/posts/2024-05-11_het-ontwikkelen-van-een-native-ios-app/",
   "source_url": "https://willem.com/nl/2024-05-11_het-ontwikkelen-van-een-native-ios-app/"
  },
  {
   "language": "de",
   "title": "Entwicklung einer nativen iOS-App",
   "url": "https://agents.willem.com/de/posts/2024-05-11_entwicklung-einer-nativen-ios-app/",
   "source_url": "https://willem.com/de/2024-05-11_entwicklung-einer-nativen-ios-app/"
  },
  {
   "language": "es",
   "title": "Desarrollo de una app nativa para iOS",
   "url": "https://agents.willem.com/es/posts/2024-05-11_desarrollo-de-una-app-nativa-para-ios/",
   "source_url": "https://willem.com/es/2024-05-11_desarrollo-de-una-app-nativa-para-ios/"
  },
  {
   "language": "fr",
   "title": "Développer une appli iOS native",
   "url": "https://agents.willem.com/fr/posts/2024-05-11_developper-une-appli-ios-native/",
   "source_url": "https://willem.com/fr/2024-05-11_developper-une-appli-ios-native/"
  },
  {
   "language": "it",
   "title": "Sviluppare un'app iOS nativa",
   "url": "https://agents.willem.com/it/posts/2024-05-11_sviluppare-un-app-ios-nativa/",
   "source_url": "https://willem.com/it/2024-05-11_sviluppare-un-app-ios-nativa/"
  },
  {
   "language": "pt",
   "title": "Desenvolver uma app iOS nativa",
   "url": "https://agents.willem.com/pt/posts/2024-05-11_desenvolver-uma-app-ios-nativa/",
   "source_url": "https://willem.com/pt/2024-05-11_desenvolver-uma-app-ios-nativa/"
  },
  {
   "language": "fy",
   "title": "In native iOS app ûntwikkelje",
   "url": "https://agents.willem.com/fy/posts/2024-05-11_in-native-ios-app-untwikkelje/",
   "source_url": "https://willem.com/fy/2024-05-11_in-native-ios-app-untwikkelje/"
  }
 ],
 "image": "https://willem.com/global/images/a84959d10e5d.webp",
 "image_width": 2560,
 "images": [
  {
   "url": "https://willem.com/global/images/4c88f32b5e47.webp",
   "description": "Nada ta hasi bo sinti bibu manera bai afó pa algun akshon físiko - mi gusta entrená!",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-1.jpg"
  },
  {
   "url": "https://willem.com/global/images/6fb02bfdb938.webp",
   "description": "Mi bisikleta ku sensor di Bluetooth konektá ku mi MacBook ku ta kore Xcode",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-2.jpg"
  },
  {
   "url": "https://willem.com/global/images/b60ff287e1ab.webp",
   "description": "Prototipo temprano di e app ta traha ku sensor di frekuensia kardíako Bluetooth i su dataset temprano mustrá den un otro app ku ta hasi gráfiko bunita (HealthFit)",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-3.png"
  },
  {
   "url": "https://willem.com/global/images/f00f6c542cf6.webp",
   "description": "App di entrenamentu di Apple Watch ta mustra botonnan grandi pa kuminsá un entrenamentu - no tin mester di konfigurashon adishonal",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-4.jpg"
  },
  {
   "url": "https://willem.com/global/images/84177e0cd3dc.webp",
   "description": "Mi a usa e layout di dato di mi Garmin Edge komo inspirashon ora mi tabata disenjá e layout di mi app ora e ta wòrdu usa komo kompiuter di bisikleta montá",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-5.jpg"
  },
  {
   "url": "https://willem.com/global/images/890dceb85ae1.webp",
   "description": "Skets di disenjo ku ta deskribí e layout ku mi ke",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-6.png"
  },
  {
   "url": "https://willem.com/global/images/557c388149d2.webp",
   "description": "Purba e app riba mi bisikleta ku un kaha i monta di QuadLock",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-7.jpg"
  },
  {
   "url": "https://willem.com/global/images/b8e692c2cdd3.webp",
   "description": "Diferente konfigurashon di dato den tempu real",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-8.png"
  },
  {
   "url": "https://willem.com/global/images/615f26f51f55.webp",
   "description": "Mi tin algu di magia den mi saku: E app ta sigui entrenamentu for di fondo - durante grabashon e ta mustra djis un widget riba e homescreen",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-9.jpg"
  },
  {
   "url": "https://willem.com/global/images/11bded661d7a.webp",
   "description": "\"Goin' the extra mile\": 8 ora riba mi bisikleta pa purba konsumo di bateria (nota: ainda tin 23% di energia!)",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-10.jpg"
  },
  {
   "url": "https://willem.com/global/images/57929e8b6042.webp",
   "description": "Screenshot di e proseso di onboarding di e app: pidi permiso i guia usuario nobo",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-11.jpg"
  },
  {
   "url": "https://willem.com/global/images/a6b82a213937.webp",
   "description": "Disenjá un paywall pa mi app: no ta mi pidimentu faborito pa usuario, pero ta un hopi importante di tur manera.",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-12.png"
  },
  {
   "url": "https://willem.com/global/images/fa7d320e32a3.webp",
   "description": "No ta bo sesion di debugging promedio: Fietselfstedentocht 2024",
   "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-13.jpg"
  }
 ],
 "text": "Antesedente\nSi bo ta sigui mi blog, esaki kisas no ta un sorpresa, pero mi gusta pidal (https://willem.com/en/cycling-as-craft-building-riding-and-repairing-bikes/) i resientemente mi a kuminsá kore un tiki (https://willem.com/en/2024-03-24_half-marathon/). Mi tin hopi eksperensia ku sigui mi entrenamentu, ku Garmin, Strava (https://willem.com/en/2016-12-31_one-year-of-cycling/), Omata (https://willem.com/en/2020-09-29_riding-with-omata-one/), Wahoo, Biostrap (https://willem.com/en/2017-11-15_collecting-health-data-with-biostrap/), Whoop (https://willem.com/en/2022-01-14_wearing-whoop-4-0/) i vários app (https://willem.com/en/2019-04-30_the-best-bike-computer-app-cyclemeter/) i sensor (https://willem.com/en/wearable-sensors-measuring-the-body-questioning-the-data/). Mi ta haña dato di salud i di fitness útil pa siña tokante bo rendimentu_físiko (https://willem.com/en/2023-05-31_impact-of-training/) i pa tin un tipo di responsabilidat pa bo mes (p.e. motivá bo pa sigui ku e entrenamentunan).\nE nerd den mi ta stima e hopi dato, e hopi tipo di sensor disponibel ta un fiesta pa mi kuriosidat - pero esei ta bai kontra mi gana pa minimalismo (https://willem.com/en/digital-minimalism-doing-more-with-less-technology/) i simplisidat. Bo realmente tin mester di tur e dato di entrenamentu (https://willem.com/en/2024-01-16_health-and-fitness-data/)? E no ta sufisiente simplemente pa skuchá_bo_kurpa (https://willem.com/en/2018-05-17_listen-to-your-body/)? Mi no sa, pero mi ta apresiá e kapasidat di un smartwatch pa (kasi) sin esfuerso sigui entrenamentu ku hopi detaye. Mi gusta kon Apple_Watch_por_wòrdu_usá_pa_sigui_sesion_di_entrenamentu (https://willem.com/en/2018-09-27_swimming-and-cycling-with-apple-watch/), apart di su kapasidat komo relòshi_di_herment_moderno (https://willem.com/en/2018-11-02_is-the-apple-watch-the-modern-tool-watch/) i reemplazo_di_telefòn (https://willem.com/en/2023-11-10_apple-watch-as-phone/). Mi ta komprondé ku mayoria hende ta bisti nan smartwatch i ta kla, pero mi ta gusta relòshi_mekániko_di_moda_bieu (https://willem.com/en/watches-and-time-a-decade-of-horology-technology-and-craft/) manera un Rolex (https://willem.com/en/2022-12-22_rolex-datejust-36/), Tudor (https://willem.com/en/2020-06-17_tudor-black-bay-36-long-term-review/), Grand_Seiko (https://willem.com/en/2021-06-05_wearing-grand-seiko/), òf hasta algu_hasí_na_midi (https://willem.com/en/2020-11-30_designing-my-own-watch/). Maske mi_ta_apresiá_tur_dos (https://willem.com/en/2021-02-28_wearing-two-watches/), mi ta inklina mas pa relòshi_mekániko_ora_mi_mester skohe_entre_smartwatch_i_relòshi_mekániko (https://willem.com/en/2017-04-30_smartwatches-vs-mechanical-watches/).\nIdea pa e app: Gran Fondo\nKiko si tabata tin un app pa smartphone ku lo kolektá tur e dato di entrenamentu ku bo kier, sin e molestia i desorden? Mi a imaginá e komo:\n- Simpel: e mester 'sali for di bo kaminda', disenjá pa 'djis traha', sin mester di hasi un tiki ku sin fin di konfigurashon òf opshon. Djis primi 'start' i kuminsá bo entrenamentu.\n- Fleksibel: Usa e app di diferente manera: monta òf bisti bo telefòn na vista pa dato den tempu real, òf pone bo telefòn den bo saku i laga e traha den fondo.\n- Poderoso: Konektá ku sensor di frekuensia kardíako, kadensia di pidal, potensia i velosidat ku Bluetooth; sostené vários sensor, ideal si bo ta usa diferente bisikleta.\n- Amistoso ku Apple Health: Warda tur dato den Apple Health na maksimo detaye, inkluso ruta di entrenamentu i midishon individual di potensia, kadensia i velosidat. Esaki ta pèrmití bo analisá grabashon den kualkier app ku ta sostené Apple Health, manera Strava, WHOOP, HealthFit i hopi otro.\n- Onesto: Sin reklame òf benta di dato. Sin kuenta òf registrashon. Bo dato mester keda privá, sigur i riba bo aparato.\nNingun di e app existente pa smartphone pa spòrt i fitness ta kumpli ku tur loke ariba. Mayoria di nan ta kompleho sin nesesidat òf ta disenjá di algun manera pa tuma bo dato pa sirbi e desaroyador di e app òf su plataforma. Mi por hasi mihó?\nTraha e app\nSa pakiko i kiko mi kier, mi a kuminsá skohe mi método preferí pa traha e app.\nNativo versus app híbrido/web\nPa mayoria di trabou ku mi ta hasi, mi ta prefera usa teknologia web habri i liber (liber manera den libre), manera HTML, JavaScript i CSS - òf software di server publiká bou di un lisensia_di_software_liber (https://willem.com/blog/free-software/), manera GPL. Pa e kaso spesífiko akí mi tabata mester ta ekstremamente efisiente ku energia i por integrá profundamente ku e sistema operativo di mi smartphone. E mihó manera pa hasi esaki pa un iPhone ta pa abraza kompletamente e software development kit di Apple: traha e app nativamente den Swift ku SwiftUI i sigui e dokumentashon_téknika (https://developer.apple.com/documentation) i e reglanan_di_disenjo (https://developer.apple.com/design/human-interface-guidelines/) tan serka ku posibel.\nProgramashon yudá pa AI\nMaske mi_tin_mi_reserva (https://willem.com/en/2022-09-11_computer-says-no/), usa AI pa programá tin tur atenshon ultimamente. Algun hende hasta ta bisa ku teknologia manera Copilot òf ChatGPT lo hasi programadónan obsoleto. Mi sa kon pa maneha AI, pasobra mi a usa e pa generá_kódigo (https://willem.com/en/2023-05-03_using-ai-to-generate-code/), i mi ta siña_hende_kon_pa_usa_e (https://willem.com/en/2023-10-14_giving-ai-training/), pero mi nunka a usa e pa traha un app iOS kompletu. Mi a pensa ku esaki lo ta un oportunidat perfekto pa wak kuantu AI ta kapas pa algu mas kompleho ku un fragmento simpel di skript. Laga nos wak kon obsoleto mi ta komo programadó den e era moderno di AI akí...\nGPS i sensor di Bluetooth Low Energy\nDespues di konfigurá mi ambiente Xcode, mi a pidi ChatGPT di OpenAI pa duna mi un kódigo pa lesa dato di lokalisashon GPS i pa generá e klase nesesario di Swift pa deteká i konektá ku sensor di Bluetooth. Mi a drenta den e famoso gat di konehu!\nE kos ku programashon yudá pa AI, ta ku SI e ta traha; pero solamente PARSIALMENTE. E ta duna bo pida ku ta traha, pero nan no ta kuadra perfektamente i no nesesariamente ta traha huntu. Wak e kódigo ku e ta genera ta manera tende eko di un kanto bunita; bo ta rekonosé ku e ta parse algu - pero no ta igual ku tende e banda toka músika live; ni hasta kanta e bo mes!\nMi a tuma e pida di AI i mi a bai lesa e dokumentashon relevante mi mes, esaki a resultá hopi mas efektivo pasobra e a pèrmití mi realmente komprondé kiko e mekanismo mester hasi. AI a yuda mi haña e kosnan ku mi tabata mester siña. Sigui dato di lokalisashon GPS tabata sorprendentemente fásil ku CoreLocation (https://developer.apple.com/documentation/corelocation) di Apple. Konektá e sensor di Bluetooth ku e app a resultá hopi mas difísil, pasobra e ta enbolbe hopi pasu distinto:\n- Deteká aparato Bluetooth: skan e área serka pa kualkier aparato ku ta disponibel i ta transmití\n- Konektá ku un aparato Bluetooth: hasi i mantené un konekshon entre e app i e aparato\n- Deskubrí karakterístika di aparato Bluetooth: no tin nada manera un aparato Bluetooth simpel, bo mester hasi bo mes 'deskubrimentu' di kapasidat i funshon di un aparato; hopi aparato ta transmití vários sinjal diferente pa dato di sensor, mekanismo di kontrol i parametro operashonal manera nivel di bateria.\n- Subskribí na karakterístika: Finalmente bo ta subskribí na un feed di dato ora bo ta sintoniá e radio Bluetooth riba un sierto karakterístika di Bluetooth.\n- Dekodifiká dato: Dado su naturalesa efisiente ku energia, bo ta risibí dato mínimo den bit krudo; bo mester dekodifiká e pakete di dato bo mes; e parti difísil ta ku kada sensor, di kualkier fabrikante, tin su mes manera di kodifiká dato.\nPa ehèmpel un sensor relativamente 'simpel' manera un sensor di kadensia ku bo pone riba pedal di bo bisikleta, e por wòrdu usa pa determiná e revolushon pa minüt ku bo ta hasi durante un sesion di pidal. Kon difísil esaki por ta? Mi a pensa ku e especifikashon_ofisial_di_Bluetooth (https://www.bluetooth.com/specifications/specs/running-speed-and-cadence-profile-1-0/) lo duna mi tur e detaye nesesario... NO! Un sensor simpel di kadensia ta sorprendentemente kompleho:\n- Perfil Bluetooth kombiná pa Velosidat i Kadensia di Pidal: kualkier sensor di kadensia semper ta identifiká komo sensor di velosidat i di kadensia, bo mester deskubrí su kapasidat 'riba e momentu'.\n- Pakete di dato no similar: E kontenido di e dato aktual ta dependé di e kapasidat aktual di e sensor (p.e. e a deteká algu), bo mester interpretá e pakete di dato, bit pa bit, ku ta kontrolá pa posibel bandera ku ta indiká kiko e próksimo bit di dato ta representá.\n- Dato no trivial: No spera un balor kla pa \"kadensia\", e sensor ta duna bo un konta akumulativo di revolushon i un marka di tempu rudimentario di e último kambio deteká; bo mester usa e balornan akí pa kalkulá e métrika ku bo ta purba midi.\nAI a duna mi algun kódigo di ehèmpel, pero a resultá ku e no tabata traha ku mi sensor partikular. Ku un app di debugging pa Bluetooth, Bluefy (https://apps.apple.com/us/app/bluefy-web-ble-browser/id1492822055), mi a logra komprondé mihó e dato ku e sensor tabata transmití. Mi a haña un pida di kódigo Java riba e blog_ofisial_di_Bluetooth (https://www.bluetooth.com/blog/part-2-the-wheels-on-the-bike-are-bluetooth-smart-bluetooth-smart-bluetooth-smart/) ku a duna mi algun pista tokante kon pa interpretá dato di e sensornan. Mi a adaptá e pida di kódigo akí pa kuadra ku vários perfil di sensor diferente i mi a tradusí e na kódigo Swift. Esaki a duna mi un prototipo temprano ku tabata traha.\nDisenjo UI/UX\nUn di e motibu prinsipal ku mi gusta e app di entrenamentu di Apple Watch ta kon su interfas di usuario (UI) ta disenjá pa fasilitá un eksperensia agradabel di usuario (UX). E app riba e relòshi tin botonnan masha grandi ku bo ta primi pa kuminsá un grabashon - i esei ta kasi tur. E app mes tin poko opshon, su disenjo tin opinion pero e ta bon pensá. E ta un kontraste fuerte ku aparato manera Garmin ku ta ofresé un tonelada di opshon pa personalisá. E truku ta pa haña un bon balansa entre fleksibilidat den kaso di uso i tin un konfigurashon default ku ta traha bon.\nKu un sistema di montahe manera QuadLock, bo por fiha bo smartphone firme riba e stuur di bo bisikleta. Esaki ta nifiká ku e iPhone por reemplazá bo Garmin komo kompiuter di bisikleta. iPhone moderno tin un pantaya ku semper ta prendé ku por mustra informashon di manera efisiente ku energia, ku kondishon ku bo usa e software development kit di Apple ku ta bini ku vários optimisashon inkorporá. Despues di hopi, hopi (https://willem.com/en/cycling-as-craft-building-riding-and-repairing-bikes/), kilometer ku mi kompiuter di bisikleta Garmin, mi a disidí riba un bista ku kampo di dato den tempu real pa velosidat, potensia i frekuensia kardíako. Loke mi ta gusta di e aparato mas avansá Garmin Edge ta ku nan por traza un gráfiko. Esaki ta pèrmití bo tene bo wowo riba kaminda ora esei importá, i wak dato históriko riba un momentu (un tiki) mas tarde.\nPa maksimisá efisiensia di energia, mi a disidí pa usa e bibliotekanan propio di Apple pa gráfiko: Swift_Charts (https://developer.apple.com/documentation/charts). Un problema ku mi a topa miéntras mi tabata desaroyá esaki ta ku midishon di sensor ta yega na diferente intervalo i momentu. Bo mester krea un tipo di mekanismo di sinkronisashon pa tin punto di dato ku ta kuadra ku marka di tempu komun pa por kompará i relashoná balor. Mi a disenjá e mekanismo akí pa sinkronisá aktualisashon di UI tambe: pa tur gráfiko i punto di dato por wòrdu aktualisá den un sol refresh; i ta optimisá pa rendimentu di CPU i gráfiko (i asina energia di bateria). Komo bonus, mi a inkorporá sostenshon pa diferente alkanse di tempu, ku ta pèrmití e gráfikonan mustra dato di e último minüt, 5 minüt, 15 minüt, ora òf henter entrenamentu.\nE app ta mustra otomátikamente e gráfikonan disponibel basá riba e sensornan konektá, ku ta eliminá e nesesidat di diferente konfigurashon ora bo tin mas ku un bisikleta. Si bo toka un gráfiko, e ta hasi grandi òf chikí. Si bo toka e alkanse di dato (p.e. \"último 5 minüt\"), bo por kambia entre alkanse. E app ta kòrda bo konfigurashon, i ta stablesé bo otomátikamente korektamente pa e próksimo entrenamentu. Pasobra tur e área pa toka i e botonnan ta masha grandi, nan ta traha bon ora bo manonan ta sudá òf si bo ta bisti wantu.\nPocketability: optimisá pa uso den fondo i konsumo di energia\nUn otro manera ku mi a imaginá pa usa e app tabata pa usa e for di mi saku, komo app den fondo. Esaki lo pèrmití kolekshon di dato diskreto, kaminda bo ta kuminsá e app i bo ta warda bo telefòn. Mi gusta e idea di tin un 'dataset kompletu' pa tur mi rit i kuriada, sin mester tin e app na sentro tur ora. Hopi entrenamentu i rit no ta asina interesante.\nPa default, e sistema operativo iOS di Apple ta limitá striktamente e opshonnan ku app tin pa kore den fondo. Esaki ta maksimisá bida di bateria i privasidat di usuario. Si bo sigui e reglanan di Apple i bo pidi e usuario korektamente pa e permisonan nesesario, bo por di bèrdat disenjá bo app pa traha perfektamente for di fondo. Mi realmente a siña apresiá e esfuerso di Apple pa optimisá henter e stack, ku ta pèrmití bo app ta mas efisiente ku energia. Bisá simpel, \"no yama nos, nos ta yama bo\" ta loke e sistema operativo ta hasi: e ta tuma kontrol riba ora bo app ta hasi su kos - ku ta pèrmití e OS sinkronisá, kombiná i prosesá den lote diferente tarea riba e core disponibel (efisiente ku energia) den e chipnan Apple Silicon.\nDurante un di mi test ku un versheon prototipo di e app, mi a logra kolektá mas di 127 mil (!!) punto di dato durante un rit di distansia largu di 8 ora riba un sol karga di bateria di iPhone, ku e pantaya prendé henter tempu. Si bo hunga ku e reglanan di Apple, bo realmente tin e poder (por ehèmpel). Desaroyá e app akí realmente a hiba mi leu, ha!\nArtista real ta lansa\nE kaminda pa infierno ta pavimentá ku bon intenshon, nan ta bisa... Pa e motibu akí, mi gusta kaba mi proyektonan. Pa un app esei ta nifiká ku mi mester tin e publiká den AppStore. Prepará e pa e skrutinio di Apple, i haña e aprobá pa e revisornan di AppStore ta un meta ekstra. E ta importante, pasobra e ta hasi bo pensa riba e onboarding (di usuario nobo) i e modelo di entrada.\nOnboarding\nUn tarea partikularmente desafiante ora bo ta traha un app ta guia hende ku ta nobo na bo app riba kon pa usa e. Un bon interfas di usuario por yuda, pero dado e integrashon profundo di e app ku Apple Health, dato di lokalisashon i sensor Bluetooth, tin un nesesidat adishonal pa pidi permiso ku kortesia.\nBo mester disenjá e proseso asina ku e no fayá ora hende rechasá sierto permiso. Apple ta masha strikto riba esaki: hende tin derecho pa rechasá. Ta bo trabou pa hasi e app traha ku ningun òf parsial permiso. Esaki ta un desafio ekstra.\nModelo di entrada pa finansiá desaroyo\nMaske mi no por sobrestimá e importansia di software_liber (https://willem.com/blog/free-software/), manera den libre, mi no por ignorá ku mi tin un famia pa mantené. Pero, mas ainda, haña hende dispuesto pa paga pa bo produkto por sirbi komo validashon ekstra di bo idea. Wak pa bo ta habrí i onesto tokante bo modelo di entrada i e lo yuda bo finansiá bo mes proyekto; no konfia riba invertidó òf kapital di risko, hasi bootstrap di bo mes desaroyo!\nBo no tin mester paga pa purba e app. E pantaya di pago ta aparesé solamente ora hende realmente usa e app (i e por wòrdu serrá semper). Dikon bo no purba e bo mes, bo por haña_e_app_aki (https://apps.apple.com/gb/app/gran-fondo-ride-run/id6502285146).\nFuturo\nKome bo mes kuminda, nan ta bisa - mi lo sigui desaroyá e app ku mi mes ta usa e. Mi no ta spera ku e proyekto akí ta un viktoria monetario lihé, pero si e por ta di uso práktiko pa mi mes, tin chèns ku otro persona por haña e útil tambe.\nUn kos ku mi gusta di e proyekto partikular akí ta ku e tuma poko esfuerso pa mantené e kore, pasobra mi gusta entrená. Debugging di versheon nobo di e app akí ta enbolbe hopi bes bai afó pa un sesion di kore òf pidal. Ken a bisa ku desaroyo di software ta un trabou sentá?!\nKonklushon\nHopi hende tin 'idea grandi' - poko persona realmente sali pa realisá nan. Esaki ta loke ta distingui e hasedónan di e resto. Mi gusta traha kosnan, pasobra e proseso di hasi esei ta rekerí bo pa realmente drenta den e materia. Bo ta siña hopi i bo ta gana eksperensia ku otronan no ta haña. Pues, traha e bo mes, hasi e bo propio!",
 "word_count": 2621,
 "markdown_url": "https://agents.willem.com/pap/posts/2024-05-11_desaroya-un-app-ios-nativo/post.md"
}