Futured Blog
App News – duben 2024
Chcete mít přehled o tom, co se děje ve světě vývoje mobilních a webových aplikací, ale nestíháte? V App News přinášíme každý měsíc přehled horkých technologických novinek. Pokrýváme iOS, Android, KMP, full-stack i QA témata. A sledujeme, jak do toho všeho rychle vstupuje AI.
Ale než se do toho pustíme, máme na vás prosbu: Jsou to už 3 roky, co App News vydáváme, a ještě víc než kdy dřív nás zajímá, jak vás baví. Věnujte nám, prosím, 3 minuty času a pomozte nám být lepší a čtivější vyplněním dotazníku. 🙏🏼

Ok, ještě jedna věc, a to pozvánka na #mDevCamp, který letos spoluorganizujeme. Koná se 23. dubna v Praze a vy u toho nechcete chybět. Ostatně podívejte se na program.

iOS & Apple

Oznámení WWDC. Nejdůležitější vývojářská konference v Apple světě začne 10. června. Jako obvykle se bude streamovat a vše odstartuje tzv. special event, na kterém dojde k představení nových operačních systémů. Greg Joswiak, který ve firmě působí jako SVP marketingu, komentoval pozvánku slovy: “It’s going to be Absolutely Incredible!" Dá se usuzovat, že novinky se budou točit zejména kolem AI.

První den konference lze navíc navštívit osobně, ale poptávka po místech značně převyšuje nabídku. Pokud chcete zkusit štěstí, registrujte se. Držíme palce. 🤞

Vision Pro + health app vývojáři = 🖤 Apple zveřejnil zajímavý článek o možnostech využití Vision Pro v oblasti zdravotnictví. Jeho součástí jsou ukázky aplikací, které mohou sloužit jako inspirace, kde všude se dá s headsetem pracovat.

Příkladem může být aplikace myMako sloužící jako pomůcka chirurgům, která využívá robot Mako SmartRobotics pro asistenci při voperovávání kloubních náhrad.

Další využití představuje aplikace CyranoHealth fungující jako tréninkový nástroj zdravotnického personálu na vybraných zdravotnických přístrojích. Podívejte se na další zajímavé příklady.

Untitled-2.png

Apple Podcasts přicházejí s transkripcí. Hojně využívaná aplikace nově podporuje transkripci. Tu si zatím mohou vyzkoušet posluchači podcastů v angličtině, francouzštině, španělštině či němčině. V přepisu dostupném krátce po zveřejnění epizody bude možno vyhledávat a případně posunovat podcast do dané části. Přepis se také bude během přehrávání zvýrazňovat – podobně, jako jsme zvyklí například z lyrics v Apple Music. Novinka má za cíl zlepšit zážitek z podcastů nejen lidem s tělesným znevýhodněním.

Untitled-3.png

Představení MacBooku Air s M3. Apple v březnu představil aktualizované MacBooky Air, a to 13" i 15" model. Aktualizované laptopy využívají totožné šasi jako předchozí generace. Novinky jsou tedy až na jednu výjimku schované pod kapotou. Změna patrná na omak je povrch, který je méně náchylný k ulpívání otisků prstů. Nové čipy M3 nabídnou zase o něco vyšší výkon a přináší podporu Wi-Fi 6E. Další novinkou jsou vylepšené směrové mikrofony pro kvalitnější hovory. Nároční uživatelé ocení podporu dvou externě připojených monitorů. U nového modelu byla také vyřešena hojně kritizovaná nepříjemnost: Předchozí generace totiž v základu obsahovala pomalejší SSD než vyšší konfigurace. MacBooky Air M3 nabízí obdobně výkonné úložiště – nehledě na jeho velikost.

Google & Android

Android 15 Developer Preview 2. Seznam nových funkcí a vylepšení budoucí verze se rozrůstá. Android 15 podporuje satelitní SMS, MMS a dokonce i RCS. Podle prvních informací by měla být podporovaná oboustranná komunikace – víc se nejspíš teprve dozvíme. Méně otravné by měly být notifikace, a to díky funkci notification cooldown snižující počty opakovaných notifikacích intenzivních aplikací. Android bude také nyní podporovat standard jednotné hlasitosti CTA-2075 tak, aby přepínání médií působilo harmonicky. V podobném duchu se nesou i další funkce: pohodlnější práce s Bluetooth zařízeními nebo upravené centrum pro ovládání hlasitosti. Větší pohodu nám snad přinese i AutomaticZenRules pro Attention Management (režim nerušit). Velké téma je opět bezpečnost: zahrnuje detekci nahrávání aplikace nebo možnost sdílet pouze část obrazovky.

Pro vývojáře je tu řada aktualizovaných API: PdfRenderer umožňuje v aplikaci pracovat se soubory PDF a nyní se značně rozrůstá o funkce, které známe z pokročilejších aplikací, jako je hledání textu nebo vyplňování formulářů. Oznámené novinky souvisí i s NFC a novým režimem naslouchání. A pak tu máme samozřejmě „oblíbené” deprecations. Dejte si pozor hlavně na změny u typů ForegroundService – dataSync pomalu končí, ať žije mediaProcessing. Broadcastem BOOT_COMPLETED nebude možné startovat několik typů service. Font padding u textu byl u posledních dvou verzí systému vypnutý kvůli některým písmům, od Androidu 15 bude  elegantTextHeight ve výchozím stavu povoleno. To se týká TextView, ale očekáváme, že Jetpack Compose bude udržovat podobné chování.

Další novinky a checklist pro migraci najdete na oficiální dokumentaci Android 15.

Untitled-4.png

Google I/O 24. Letošní Google I/O se koná 14. května. Konference bude klasicky streamovaná a můžeme očekávat více než 100 přednášek, workshopů a dem. Kromě AI, mobilů a webu zmiňuje Google i obsah věnující se multiplatformnímu vývoji.

Untitled-5.png

Windows Subsystem for Android končí. Microsoftu se pro spolupráci nepodařilo načechrat Google, takže Amazon Appstore s Android aplikacemi na Windows čeká poslední rok života. Bez Google Play a oficiální podpory od Google to zkrátka k větší adopci nevedlo. Nějaká podpora spouštění Android aplikací na Windows ale zůstat má.

KMP

Než se vrhneme na KMP novinky, máme pro vás pozvánku. Přijďte ve středu 17. dubna na speciální meetup 3v1 probíhající zároveň v Praze, Brně a Žilině. Čeká vás večer plný Kotlin témat kurátorovaný třemi týmy. Registrujte se přes Eventbrite.
https---cdn.evbuc.com-images-733413189-212122557147-1-original.20240402-073419.jpeg

Kotlin/Wasm tutorial. Rádi si osaháváte nové technologie? Tak to by vám neměl uniknout krásný tutorial pro Kotlin/Wasm od Touchlab. Dozvíte se, jak snadno vytvořit a nastavit základní Hello world projekt a vyzkoušíte si, jak funguje interop. Ten je obousměrný jako u ostatních KMP backendů, takže lehce zvládnete exportovat funkce nebo spouštět JavaScriptový kód přímo z Kotlinu. Kotlin/Wasm je zatím ve verzi alpha, proto narazíte na několik omezení: nemůžete přijímat ani vracet jiné než primitivní typy a stringy – alespoň tedy prozatím. Můžete si ale exportovat classy, funkce a proměnné ze strany JS. Proměnné jako window nebo document jsou pro vás už nachystané, takže je můžete použít hned. Zní vám to složitě? Věřte nám, není. Neváhejte se na to vrhnout.

Ktor plán na 2024. JetBrains zveřejnili roadmapu pro tento rok. Můžeme se těšit na několik nových features, mezi ty hlavní patří přímá podpora pro gRPC pro Server i pro Clienty. Po gRPC podpoře volala komunita, a i my jsme rádi, že ji JetBrains zařadili mezi priority. Dále přislíbili vznik portálu, kde najdeme pluginy třetích stran, což pomůže ekosystému pluginů a jejich distribuci. Na seznamu je také nový tool pro příkazový řádek na vytvoření nového projektu. Doteď jste měli pouze online generátor nebo šlo použít plugin do IJ Idei, ten je ale dostupný jen v placené Ultimate verzi. Za zmínku stojí nová podpora pro dependency injection, která vzbudila spoustu otázek z komunity, proto JetBrains vydali doplňující článek, ve kterém všechny ubezpečili, že žádný DI framework rozhodně nebude vyžadován – bude se jednat jen o usnadnění použití v případě, že nějaký DI framework používáte.

K2 Alpha mode. Od verze 2024.1 v IntelliJ Idea si můžete vyzkoušet rychlost K2 kompilátoru. To by mělo vylepšit většinu smart funkcí vašeho vývojového prostředí jako code completion, code highlighting, navigation, find usages, refactoring a další. Na podporu KMP nebo Android projektů si ale budeme muset ještě chvíli počkat.

01_Performance-tests-K2-2x-1.png

Jetpack ViewModel. O chystající se migraci lifecycle-viewmodel knihovny od Googlu do KMP jsme psali dříve a dnes si ji už můžete vyzkoušet. Verze 2.8.0-alpha03 zpřístupňuje ViewModel , ViewModelStore , ViewModelStoreOwnerViewModelProvider pro použití v common source setu. Jeden z hlavních benefitů je dostupnost viewModelScopu. To je CoroutineScope, který žije v rámci ViewModelu. V něm můžete spouštět Coroutiny nebo získávat hodnoty z Flows. Při použití nejspíš narazíte na jeden problém, a to, že vám kompilátor bude hlásit duplikované classy. To proto, že spousta androidx knihoven je závislá na lifecycle-viewmodel. Snadno to vyřešíte excludováním těchto verzí. Popis najdete v článku.

KMP dokumentace. Kotlin tým vylepšuje dokumentaci pro KMP a přidává nové guidy. Ty se nově zaměřují na použití sdílených resourců a na testování. Zde se dozvíte, jak testovat sdílený kód i kód specifický pro dané platformy. Testy si pak můžete pustit přímo v IDE, jak jste na to zvyklí v androidích projektech.

Web

Interaction to Next Paint součástí Core Web Vital. Od 12. března je Interaction to Next Paint (INP) stabilní metrikou v Core Web Vital. Tato metrika představuje pokrok ve způsobu měření odezvy webu. INP se zaměřuje na to, jak rychle web reaguje na akce uživatele. Soustředí se na zpoždění všech kliknutí, klepnutí a dalších interakcí po dobu životnosti stránky a uvádí nejdelší dobu trvání, přičemž ignoruje odlehlé hodnoty.

INP řeší řadu nedostatků, které používání FID přineslo: Narozdíl od FID hodnotí všechny interakce na stránce (nejen první), bere v úvahu zpoždění vstupu, dobu provádění manipulátorů událostí a dobu, než je vykreslen další snímek. To poskytuje komplexnější míru celkové odezvy, což je dobrý (a spolehlivější) ukazatel uživatelského zážitku. Platí, že nízký INP označuje konzistentní odezvu na vstup uživatele po celou dobu životnosti stránky.

Do 9. září 2024 mají vývojáři čas přejít na INP, neboť jím Chrome postupně FID nahrazuje. Podpora pro FID bude od té doby v Chromu postupně ukončena a odstraněna z Core Web Vitals, takže již nebude zaručena její dostupnost.

Informace o optimalizaci pro metriku Interaction to Next Paint, samotné vysvětlení metriky, techniky pro její lokální měření a měření s reálnými uživateli, praktické rady pro optimalizaci různých scénářů použití a seznam případových studií z reálného světa, které ukazují použití těchto rad v praxi naleznete zde, podrobnosti o vydání potom tady.

inp-launch.svg

Astro DB. Vývojáři z Astro představují Astro DB, plně spravovanou SQL databázi navrženou výhradně pro Astro. Její uvedení na trh představuje významný krok vpřed při zjednodušování správy databází v rámci tohoto ekosystému. Díky bezproblémové integraci databázové funkcionality do Astro frameworku mohou vývojáři nyní snadno využívat sílu relačních databází s výraznou efektivitou.

Původ Astro DB vyplývá z úsilí o posílení tvorby webů řízených obsahem, čerpajícího inspiraci z robustní infrastruktury databází, která je spojována s platformami jako WordPress. Postaven před limity stávajících řešení se tým Astro vydal na cestu vytvoření databázové služby pečlivě laděné pro unikátní požadavky jejich produktu. Výsledkem je univerzální řešení databáze, které nejen zjednodušuje lokální vývoj, ale také nabízí bezproblémovou škálovatelnost prostřednictvím hostovaných databází. Podívejte se na oficiální dokumentaci.

Web Neural Network API. W3C připravuje rozhraní webové neuronové sítě. Jedná se o nízkoúrovňové rozhraní API pro hardwarovou akceleraci inference neuronových sítí. Toto rozhraní API definuje abstrakční vrstvu nezávislou na platformě, která je optimalizovaná pro web a je přizpůsobitelná různým hardwarovým konfiguracím. Využívá schopnosti strojového učení napříč operačními systémy a hardwarovými platformami bez omezení funkcí specifických pro danou platformu. Tato vrstva zohledňuje potřeby hlavních frameworků strojového učení pro JavaScript a umožňuje vývojářům webových aplikací, kteří se pohybují v oblasti strojového učení, psát vlastní kód nezávisle na externích knihovnách.

Případy použití hardwarové akcelerace inference neuronových sítí na aplikační úrovni zahrnují detekci osob, sémantickou segmentaci, rozpoznávání obličejů, převod stylů, převod textu na obraz a mnoho dalších. Všechny aplikace v těchto případech použití lze postavit na předtrénované hluboké neuronové síti. Pro více informací klikněte sem.

Vlt.sh. Přichází další „domov“ pro open source. Darcy Clarke, bývalý manažer týmu npm CLI, na svém blogu napsal o závažné chybě v jádru ekosystému npm. Aktuální problém s npm souvisí s nesouladem mezi manifestem balíčku a jeho tarballem, protože jsou publikovány nezávisle, bez vzájemného ověření. Tento nesoulad otevírá možnosti zneužití a nepřesnosti v nástrojích nebo poznatcích využívajících registr npm, což umožňuje zločincům skrýt malware nebo skripty v závislostech. Tento problém, nazývaný jako manifest confusion, představuje významná rizika pro  integritu a bezpečnost ekosystému JavaScriptu, které ovlivňují různé správce balíčků a uživatele. Potenciální řešení zahrnují další zkoumání postižených položek, prosazování ověřování manifestu a naléhavé zdokumentování API veřejného registru npm, aby byly tyto zranitelnosti adresovány.

Na základě nespokojenosti se současným stavem balíčkových ekosystémů vidí autor mnoho příležitostí pro inovace. Jelikož on a jeho začínající tým usilují o zlepšení zkušeností vývojářů, budou se o to samé snažit při budování budoucnosti balíčků JavaScriptu na platformě vlt.sh.

banner.webp

AI

Claude-3: The king is dead, long live the king! Bez jakéhokoli většího oznámení přišel Anthropic s několika modely, které překonávají GPT-4. Ať už se jedná o hodnocení od komunity (která využívá Claude-3 pro nejrůznější úkoly), oficiální benchmarky nebo z LLM Arena Leaderboard, zdá se, že Claude-3 je lepší model než samotný GPT-4.

Anthropic přišel se třemi různými modely v rámci Claude-3 rodiny.

  • Opus. Nejschopnější model překonávající všechny verze GPT-4, který ale má i vyšší cenovku. Je vhodný pro situace, kdy je potřebné analytické myšlení.
  • Sonnet. Velmi schopný model, který je ale výrazně rychlejší a levnější než Opus. Měl by být vhodný například pro vytváření RAG aplikací, kde je potřeba rychlost i přesnost.
  • Haiku. Celkem překvapivý model, který je výrazně levnější než GPT-3.5, a to přibližně čtyřicetinásobně, ale je výrazně schopnější než některé verze GPT-4 a výrazně rychlejší. S dostatečným množstvím příkladů dokáže překonat i GPT-4 v specifických úkolech.
image-20(51).png

Grok-1 se dočkal open source vydání. Po mnoha obviněních ze strany Elona Muska směrem k OpenAI, že se nedrží svého původního poslání a že není “open”, vydává xAI vlajkový model Grok-1. Jedná se o neupravenou verzi, která nemá výrazné bezpečnostní prvky a také na ní neproběhl fine-tuning, aby fungovala ve formě dialogu. S 314B parametry se jedná o jeden z největších open source modelů, ke kterým se v současnosti dá dostat. Ačkoliv jde o skutečně velký model, podle benchmarků je jen o něco lepší než například mixtral8x7b, který je výrazně menší. Open source komunita ale určitě časem najde způsob, jak z tohoto modelu získat co nejvíce.

Devin přináší koncept AI Software Engineer do reality. Koncept, který se s příchodem LLM technologie již vícekrát opakoval, se znovu dostává na povrch. Cognition-labs přišli se svou verzí, která dokáže pomáhat s nejrůznějšími vývojářskými úkoly a směřuje k tomu být „prvním plně autonomním AI software inženýrem na světě“. Zatím se na veřejnost dostalo pouze demo, ale i to je celkem pozoruhodné: Devin dokáže vyřešit množství drobných problémů na open source projektech, naučit se nové technologie nebo dokonce úspěšně dokončit práci na freelancing platformě. Zatím jsou tyto demo projekty jediná věc, která se dostala ven, a vypadá to, že Devin sice nebude plně autonomní (alespoň zatím), ale mohl by to být další krok, jak se AI dostává do života vývojářů.

Open Interpreter se snaží vytvořit general-purpose hlasové ovládání pro různá zařízení, a to s open source vizí, která bude dostupná všem. V rámci dema prezentovali několik technologií jako HW zařízení, s kterým můžete komunikovat, a server, který běží na vašem lokálním zařízení nebo v cloudu. Na rozdíl od jiných přístupů, které se integraci různých služeb pokoušeli vyřešit za pomoci API integrací, Open Interpreter se toho snaží docílit za pomoci AI integrace fungující přímo s UI, se kterým pracujete i vy.

QA

TestCrunch 2024. Minulý týden jsme vyslali početnou výpravu na tradiční brněnskou konferenci TestCrunch. V tuto chvíli pro vás vše sepisujeme, a vy se tak můžete těšit na podrobný report z téhle akce.

Cypress. Vyšly aktualizace 13.7 a 13.7.1. Jaké hlavní změny přinesly?

  • Jsou opravené chyby, které se objevily na prohlížeči Firefox v. 124 a 125,
  • opraven byl i problém s rozmazáním prvků
  • a v Chromiu bylo upraveno chování při pořizování screenshotů, aby se před pořízením aktivovala hlavní karta Cypress. Tím se zabrání tomu, aby v určitých situacích vypršel časový limit pořízení snímku obrazovky.

Seznam všech změn a oprav obsažených v současné i v předchozích verzích najdete v changelogu.

–––

Novinky, které nás zaujaly v březnu, pro vás připravili Jakub Marek (iOS), David Kočnar (Android), Rudolf Hladík (KMP), Martin Sumera (AI), Sabína Gulčíková (Web) a Jan Drásal (QA).

–––

Baví vás, jak o technologiích přemýšlíme? ⁠Úspěšnou aplikaci můžeme vytvořit i pro vás. Napište Lukášovi, který Futured založil: [email protected] & +420 605 312 459

Chcete se k nám přidat? Aktuálně hledáme hned několik kolegů. Ozvěte se Míše a pobavte se o možnostech spolupráce: [email protected] & +420 739 106 507.