Labs · アプリの表層
寸法どおりに、そして持ち続けるためにつくるアプリ。
あなたのために作り変えた製品ではなく — それが走る現場のために築いたもの。教育、 産業、あるいはあなたが持ち込むどんな分野であれ。電波ゼロでも動く Rust コア、どの画面でもネイティブ、 そしてあなたのデータがあなたのものであり続ける設計。
あなたの色を付けただけのテンプレートではありません。実際に役立てる仕事のかたちに合わせたソフトウェアです。
教室、生産ライン、現場チーム — アプリは、その仕事が実際にどう行われるかに合わせて書かれ、 デモのためではありません。分野がアプリを形づくるのであって、その逆ではありません。
地下、遠隔地、圏外 — 仕事は止まりません。端末が真実を保ち、信号が戻った瞬間に エッジと突き合わせます。
抜けられない契約も、人質に取られるデータもありません。コアはあなたのもの、記録はあなたのもの、 そして築いた技術者が答える人です。
長く保つよう築いたアプリの四つの数字。
真剣なアプリの技とは、コンパイラが守るコア、信号がなくても働き続け、
一つの真実の源からどの現場でも走るコアです。
コードは英語のままです — 技術の世界共通語として。
// the core of the app · typed, so a wrong state cannot be reached #[derive(Clone, Deserialize)] struct Job { id: Uuid, site: SiteId, state: State, // Scheduled → OnSite → Done — nothing else is legal readings: Vec<Reading>, synced: bool, // the device knows what the edge has not yet seen } impl Job { /// A job closes only once every required reading is in. fn can_close(&self) -> bool { matches!(self.state, State::OnSite) && self.readings.iter().all(Reading::valid) } }
// works at zero bars · the floor does not wait for a signal fn record(&mut self, r: Reading) { self.readings.push(r.clone()); self.queue.push(Op::Add(r)); // kept on the device, durable self.synced = false; } /// When the signal returns, the device reconciles — in order, idempotent. async fn reconcile(&mut self, edge: &Edge) -> Result<()> { for op in self.queue.drain(..) { edge.apply(op).await?; // the edge is the record; the device, the witness } self.synced = true; Ok(()) }
# one core, every floor it must run on [targets] ios = "aarch64-apple-ios" # a thin Swift shell over the Rust core android = "aarch64-linux-android" # a thin Kotlin shell over the same core desktop = "x86_64 · aarch64" # Windows · macOS · Linux # the logic is written once, in Rust. only the shell changes per floor. # Swift and Kotlin carry the screen; Rust carries the truth.
なぜあなたの現場のために築いたアプリは、合わせるために作り変えた製品に勝るのか。
作り変えた製品は、あなたの現場のためにはつくれません — あなたの現場が知られる前に 生まれたものだからです。オンライン専用のアプリは、信号が絶える場所では信頼できません — 待つことが 組み込まれているからです。だから私たちは一つの Rust コアを書き、コンパイラで守り、自ら署名します — そして、棚の値段ではなく、測ったものを見積もります。
一行を書く前に、あなたの仕事がどう守られるか。この部分は交渉の余地がありません。
NDA はここでの標準であり、追加の売り込みではありません。あなたが共有したものは一人の技術者だけが読み、 ほかの誰も読みません — 売られることも、共有されることも、受け渡されることもありません。
認証情報と記録は最小権限のもと、あなたの家に留まります。必要のない写しは持たず、 あなたの言葉なしに何もあなたの手の届く範囲を離れません。
あなたの家で動くものは、あなたが読み、監査できます — 見えないまま信じるブラックボックスではありません。 機関室は私たちのもの、あなたが動かすものはあなたのものです。
二行で — それが走る現場と、担うべき仕事。私たち自身が読み、 私たち自身が答えます。
すでに Zürich の画面の上にあります — 行列の中でも、チケットの中でもなく。 これを築くことになる技術者が読み、自ら返信します。
·