Programming: Mobile Development and git-annex
-
Andy Wingo: parallel futures in mobile application development
Good morning, hackers. Today I'd like to pick up my series on mobile application development. To recap, we looked at:
-
Ionic/Capacitor, which makes mobile app development more like web app development;
-
React Native, a flavor of React that renders to platform-native UI components rather than the Web, with ahead-of-time compilation of JavaScript;
-
NativeScript, which exposes all platform capabilities directly to JavaScript and lets users layer their preferred framework on top;
-
Flutter, which bypasses the platform's native UI components to render directly using the GPU, and uses Dart instead of JavaScript/TypeScript; and
-
Ark, which is Flutter-like in its rendering, but programmed via a dialect of TypeScript, with its own multi-tier compilation and distribution pipeline.
Taking a step back, with the exception of Ark which has a special relationship to HarmonyOS and Huawei, these frameworks are all layers on top of what is provided by Android or iOS. Why would you do that?
-
-
Mozilla Thunderbird: Thunderbird for Android / K-9 Mail: May 2023 Progress Report
As announced in the progress report for the previous month, in May we mostly worked on a new account setup experience. To learn more about that and what else has happened in the world of K-9 Mail as it evolves to Thunderbird For Android, read on.
[This month’s progress report was co-written by cketti and Wolf]
The Revamped Account Setup UI
In our continued efforts to enhance the user experience, we have redesigned the account setup UI. This is the first point of contact for our users and we wanted to ensure it is as intuitive and straightforward as possible. We integrate Thunderbird’s Autoconfiguration for seamless email account setup, start the transition of our app’s UI from XML Android layouts to Jetpack Compose, and adopt Atomic Design principles for a cohesive, intuitive design.
At the heart of this transformation is the integration of Thunderbird Autoconfig. This system enables automatic configuration of most email accounts, simplifying the user experience by making the connection to email servers effortless. Users only need to enter their email address and the server settings are obtained via multiple methods. They can be sourced from a central database (ISPDB), retrieved directly from ISPs through a configuration server, drawn from provided configuration files. In cases where these methods are unsuccessful, the configuration is derived from common server names. If all else fails, manual configuration is always available. With this powerful tool, setting up an email account becomes a breeze.
Our redesigned account setup UI has been written using Jetpack Compose. Although XML layouts have long been the standard for building Android UIs, the Android ecosystem is transitioning towards Jetpack Compose as the new norm. This declarative UI toolkit has enabled us to build UIs more efficiently, with less boilerplate code and reduced likelihood of bugs. Jetpack Compose defines UI elements as composable functions written in Kotlin code. This results in more intuitive, expressive, and readable components and promotes the reuse of UI components, streamlining the UI design process. This aligns well with the implementation of our new design system.
-
John Goerzen: Using git-annex for Data Archiving
In my recent post about data archiving to removable media, I laid out the difference between backing up and archiving, and also said I’d evaluate git-annex and dar. This post evaluates git-annex. The next will look at dar, and then I’ll make a comparison post.
What is git-annex?