JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
はじめに 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 など…
【マルチデバイスチーム ブログリレー1日目】 エンジニアリンググループ・マルチデバイスチーム(以下、マルデバ)の星野です。 2年ほど前にスマホアプリ開発で採用している技術というブログを書きましたが、時間が経ち、採用している技術に更新があったり、新しいアプリもリリースされましたので、改めてマルデバで開発しているアプリとその技術選定について紹介します! アプリの数が多いため、各アプリの深掘りは行わず、アプリの概要 + 選定技術の紹介にとどめています。より詳しく知りたい方は方は、ぜひカジュアル面談・面接などでご質問ください!
internal関数/クラスへ@PublishedApiアノテーションを付与すると、publicなinline関数からも呼び出せるようになります。 kotlinlang.org kotlinlang.org ただし、privateな内容には適用できないため、モジュール or プロジェクトレベルで分かれている場合にしか利用できません。
こんにちは!花粉で苦しんでいる支払い.com EMの大聖寺谷です! 今回は支払い.com バックエンドチームで運用しているPull RequestごとにKotlin/KtorをCloud Runにプレビューデプロイする方法について紹介したいと思います。 🔍 背景 機能開発時、ユニットテストがokでコードレビューでも問題なし!と思ったが実際に動かしてみたら想定外の仕様漏れや不具合が見つかったということはありませんか? また大きい機能開発の時は実際に動く環境で確認したいがローカルだとそもそもDBに必要な十分なデータが入っていなくて満足な確認ができない(用意すればいいが面倒)・・・といったこともない…
はじめに こんにちは。以下記事で Jetpack Compose Navigation を使った簡単な画面遷移サンプルを書かせていただきました。 lelelemon.hatenablog.com こちらの記事は、アプリバーやボトムナビゲーションと連携させて画面遷移を行うサンプルになります。 当記事も主に Jetpack Compose の簡単な画面遷移サンプルをお探しの方に何かご参考になれば幸いです。 なお、ソースコードは下記にあります。ご自由にお使いください。 github.com アプリバーを実装 Screen2Child.kt package com.example.screentran…
はじめに こんにちは。直近の業務で Jetpack Compose の Navigation コンポーネントを使った画面遷移の実装を行ったので、簡単なサンプル例を書きたいと思います。 主に Jetpack Compose の簡単な画面遷移サンプルをお探しの方に何かご参考になれば幸いです。 Navigation コンポーネントについて Jetpack Compose アプリにおいて、コンポーザブル間の画面遷移を実現できます。 developer.android.com 事前準備 Navigation コンポーネントを使うにあたり、必要な依存関係の追加と、画面遷移の動作確認用の簡単なコンポーザブル…
はじめに 皆さん!初めまして! 楽楽請求新卒エンジニアの kaihatsuda です。 本記事では、Kotlin のテストフレームワーク Kotest に使われている Kotlin の特徴的な記法や技術を紐解いていきます! (本記事は Kotest の 使い方解説 ではなく、その背後にある Kotlin の技術を理解することに焦点を当てていますので、ご了承ください。) 私たちが開発する 楽楽請求 では、サーバーサイドの実装に Kotlin を採用しています。テストコードの記述も開発サイクルに欠かせない重要な工程の一部として位置づけられており、品質を担保するための必須要素になっています。特に、テ…
こんにちは!虎の穴ラボの鷺山です。 前回はKotlinの静的コード解析ツール「detekt」でコードをキレイに保とう!という内容で、detektの導入方法や基本的な使い方をご紹介しました。 今回はさらに踏み込んで、detektに独自のカスタムルールを追加する方法をご紹介します! カスタムルールを使うと、そのプロジェクト独自のルールに基づいてKotlinのコードを自動でチェックできます。これにより、人の手で確認していたチェック作業を省力化できたり、コードレビューでの問題の見逃しを減らせるかもしれません。 目次 目次 前提環境 準備: detektのセットアップ ステップ1: カスタムルール用のG…