JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
2025年8月現在で使えるPOIを使ってExcelファイルを読み込みます 2017年に作ったアプリで、POIを使っていたのですがスマホで動かなくなったので作り直しますhiroku-asaku.hatenablog.com 使ったライブラリ 開発環境:Android Studio poi-5.3.0.jar poi-ooxml-5.3.0.jar poi-ooxml-lite-5.4.1.jar xmlbeans-5.1.1.jar log4j-api-2.24.3.jar commons-io-2.19.0.jar commons-collections4-4.5.0.jar commons-…
はじめに startActivityForResultとonActivityResultとは? deprecatedの内容と置き換え方法 置き換えのメリット 遷移元画面の結果受け取り処理の可読性向上 ActivityResultContractによる返り値の型の強制 最後に はじめに Androidエンジニアの篠本(ささもと)です。 今回は、deprecated(非推奨)警告の解消のためにstartActivityForResultとonActivityResultをActivity Result APIに置き換える対応を行い、置き換え前後でコードの可読性が向上し、不具合が発生しにくくなるよう…
モバイルアプリ開発に適したプログラミング言語の比較 スマートフォンの普及により、モバイルアプリは現代社会に不可欠な存在となりました。iOSやAndroidを中心に、エンタメ、金融、健康管理、SNSなどさまざまな分野でアプリが提供されており、ユーザーとの最も直接的な接点とも言えます。こうしたモバイルアプリの開発において、どのプログラミング言語を選ぶかは、プロジェクトの成功を左右する重要な要素です。本記事では、モバイルアプリ開発で主に使用される言語について、その特徴やメリット・デメリットを比較し、選定の指針を提示します。 1. 開発方式の分類と影響 モバイルアプリ開発は、以下の3つの方式に分類され…
こんにちは!プロダクト開発部のおしん(@38Punkd)です。 スタメンは、組織改善クラウドサービス「TUNAG」を提供しています。そのコア機能である『タイムライン』を、モバイルアプリでWebViewからSwiftUI / Jetpack Composeにリプレイスしました。今回は、その背景と技術選定、そして実現までの道のりをご紹介します。 リプレイスの背景 スタメンの主幹サービスである「TUNAG」は、『人と組織に働きがいを』提供することをミッションに掲げ、コミュニケーションの活性化、情報共有の促進、ビジョン浸透、人材定着、そして業務効率化をメインに、お客様の組織課題を解決するサービスです。…
はじめに Android 15 (APIレベル 35) 以降をターゲットとするアプリでは、Edge-to-Edge表示がデフォルトで有効になります。この変更により、既存のアプリでUIがステータスバーやナビゲーションバーと重なり、表示が崩れたり操作できなくなったりする問題が発生します。 Edge-to-Edgeが強制されたWebview ステータスバー、ナビゲーションバーと重なっている箇所はタッチすることができない。スクロールを無効にしているアプリではレイアウトバグに繋がる。 Edge-to-Edgeのステータスバー Edge-to-Edgeのナビゲーションバー Android 15では一時的な…
jackson-module-kogera 2.19.0-beta25にて、value classのシリアライズ / デシリアライズに関連する処理でMethodHandleを使うように変更しました。 github.com この記事では、変更の効果が最低でどの程度かを確認した結果を紹介します。 value class関連処理をMethodHandle化する理由 ベンチマーク ベンチマーク内容 結果 スループット シングルショット 全体を通した考察 data classとの差について 補足 おまけ value class関連処理をMethodHandle化する理由 Jacksonでvalue cl…
Canvaの capturenowが提供する素材 こんにちは、まつです。 最近スマホを別のメーカーに変えましたのですが、Google Motion Photo形式で写真撮影できないことに気付きました。 Google Motion Photo形式で撮影できるアプリが無いか調べたところ、スマホを変えた時点(2025年3月)ではそのようなアプリが見付かりませんでした。 ということで、無いならば作ればいいの精神で、Google Motion Photo形式で撮影できるアプリを自作しました。 今回は、AndroidのKotlin環境で「Google Motion Photo」を自作する方法をご紹介します…
はじめに GlobalScopeとは? GlobalScopeがdelicate扱いに 対応方法 最後に はじめに Androidエンジニアの篠本(ささもと)です。 今回、delicate(取り扱い注意)のGlobalScopeをwithContext(NonCancellable)に置き換えまして、そのご紹介をさせていただきます。 なお、この記事は以下の環境を前提としています。 Kotlin 1.9.24 Kotlinx Coroutines 1.8.1 Android APIレベル 34 GlobalScopeとは? GlobalScopeとは、Kotlin Coroutinesを使用して…
【マルチデバイスチーム ブログリレー5日目】 エンジニアリンググループ マルチデバイスチームの渡辺です。 m3.com 電子書籍アプリはエムスリーで開発しているスマホアプリの中で最も歴史のあるアプリです。 アプリの機能やデザインのリニューアルをしたい、しかし長年積み続けてきた技術的負債がそれを妨げ、簡単そうに見える改修でさえ難しいという状態でした。継続的な開発を可能とするためにどのように式年遷宮(リファクタリング)をしているか紹介します。 iOSは先行してリファクタリングが完了しており、今回はそれに追従するかたちで進めているAndroid側の内容です。
こんにちは! 株式会社UPSIDERの支払い.comでバックエンドエンジニアを担当しているふっくです。 今回は、支払い.comバックエンドで導入した関数型にインスパイアされたKotlinライブラリ「Arrow-kt」を紹介します。 Arrow-ktとは? Arrow-kt は、Kotlinに関数型プログラミングの強力な機能をもたらすライブラリセットです。特定の目的を持つ複数のライブラリとして提供されています (Overview of libraries)。 主なライブラリは以下の通りです。 arrow-core : 型安全なエラー処理を実現する Either 、Option 、Raise など…