From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
JJUG CCC 2023 Fall で発表された内容です。 Java21ではパターンマッチがswitch式で正式に使えるようになります。 https://openjdk.org/jeps/441 これらの変更により型の検査がより強化されて、より実行時例外がすくなくコンパイル時に多くの実装ミスが検出できるようになります。 本セッションではJava21のパターンマッチに関する新機能にふれつつ、先んじて導入しているKotlinとの比較や、実際のプロジェクトでどのように活用するべきかについて話します。 型を使って実際に実装ミスをコンパイルフェーズで発見していくという内容は過去にKotlin Fest 2022で筆者が発表しており、今回はよりJava21の新機能とパターンマッチに着目して解説していく予定です。 https://jjug.doorkeeper.jp/events/164154
Kotlin Fest 2024 こんにちは! マルチデバイスチームの小林(@bakobox)とデジスマチームの荒谷(@_a_akira)と大和(@daiwahome0)です。 Kotlinに関する技術カンファレンス「Kotlin Fest 2024」が6月22日に開催されました!*1 エムスリーはひよこスポンサーとして協賛させていただき、弊社社員も何人か参加したので振り返りを行いたいと思います! (Kotlin Festスタッフとして星川(@oboenikui)も参加していました) ブース セッション もっとKotlinを好きになる! K2時代のKotlin Compiler Plugin開発 Jetpack Compose: 効果的なComposable関数のAPI設計 K2のKotlin IDEプラグインの中を覗いてみよう♪ 2024年に公開するに相応しいKotlin Multipl
こんにちは、モーニーングルーティーン担当、VPoEの河合(@vaaaaanquish)です。 サムネイルの写真は、娘が描いてくれたパパです。上手です。 本記事は、先日開催されましたKotlin Festにおいてエムスリーのスポンサーブースで展開していた『エンジニア トリ診断』の開発秘話を公開するものです。 Kotlin Festとエンジニアトリ診断 Kotlin Compose HTMLとは Compose HTMLをGitHub Pagesでホスティングする OGPを設定する Kotlinでフロントエンド開発を進める おわりに We are hiring !! Kotlin Festとエンジニアトリ診断 Kotlin Festは、Kotlinに関する技術カンファレンスで、今年は6月22日に開催されました。 詳しくは参加レポートもありますので、ご参照頂ければ幸いです。 www.m3tech
まえがき 株式会社スペースリー Androidエンジニアのふかまちです。 普段は弊社サービスのツールであるAndroidアプリ「Spacely Photo Task」を開発しています。 現在、後述するパノラマ画像の360°Viewerをキャプチャーした動画を生成する開発に取り組んでおり、 本記事では開発で得た知見を元に、GLSurfaceViewの活用方法を一部ご紹介します。 Android x OpenGLならGLSurfaceView GLSurfaceViewとは、OpenGL ESをサポートしている、Androidの3D描画を行うためのViewです。描画にはGPUを活用していることでメインスレッドの負荷を軽減でき、高速なフレームレートでの描画が可能だという特徴があります。 弊社では、パノラマ画像の360°Viewerで使用しています。 (参考)GLSurfaceViewを使ったパノ
はじめに ポリモーフィズム形式の実装 ポリモーフィズム形式の実装の利点 ポリモーフィズム形式の実装の欠点 代数的データ型形式の実装 代数的データ型形式の実装の利点 代数的データ型形式の実装の欠点 まとめ We are hiring! はじめに Kotlinのsealedタイプ (sealed class と sealed interface) は、外部モジュールによるクラスの継承やインターフェースの実装 (以降は実装で統一します) を制限することで、継承先クラスの一覧を静的に取得できるようにする機能です。 以下は公式ドキュメントの例ですが、sealedタイプを使うことで log() 関数内の when が全てのとり得るパターンを網羅していることがコンパイル時にチェックされ、冗長な else を省くことができます。 また、Error インターフェースの直接の実装先が増えて when が網羅性
こんにちは!Androidエンジニアの kitakkun(@kitakkun_pb)です。 6月22日 開催の Kotlin Fest 2024 にて、ミラティブから私が登壇します! www.kotlinfest.dev 登壇内容 ロング(40分) 2024/06/22 14:50〜 トラック2 もっとKotlinを好きになる!K2時代のKotlin Compiler Plugin開発 by kitakkun fortee.jp 本セッションでは、Kotlin Compiler Pluginの仕組みやその開発方法に興味をお持ちの方を対象として、 Kotlin Compilerの基礎知識、各種Compiler Plugin APIの使い方、そして実際の活用例についてお伝えします。 コンパイラまでも柔軟に拡張できるという、Kotlinのさらなる魅力に迫るセッションとなっています。 お時間に余裕
こんにちは、モバイル開発のandrekandore (かんちゃん)だ! ※ この記事のどこかにiOSDC Japan 2023のチャレンジトークンが隠されているよ! はじめに この記事は、Kotlin Multiplatformを用いて実現しようとしたこと、運用してみた結果の振り返りについての紹介である。特にSwift・iOSの技術者の観点からどのような課題があったかについて解説する。 iOS / Androd 両プラットフォームをまたがる課題 モバイルアプリ開発においてよく課題としてあがるのは、各プラットフォームにまたがる「ビジネスロジック」の共通化である。 モバイルでは、ウェブとの差異はもちろん、AndroidやiOSアプリとの(仕様・実装の)差異が開発時間の増加につながってしまうことがある。各プラットフォームの差異を埋め合わせることに時間を割くことが、ユーザへの新規機能の実装時間を減
この度、安定版 K2 コンパイラーを備えた Kotlin 2.0 をリリースすることになりました。このコンパイラーはマルチプラットフォームとしてゼロから開発されており、コードをより深く理解して 2 倍の速度でコンパイルすることが可能です。 Kotlin は JVM 言語として始まり、その簡潔さと安全性により、開発者をすぐに魅了しました。 AWS、Adobe、Atlassian、Google などの大手企業が採用し、サーバーサイドで急速に普及しています。 Kotlin は Android 開発の主要言語としても採用されるようになり、上位 1,000 タイトルに入る Android アプリのうち 95% が Kotlin コードを使用しています。 JetBrains は Kotlin Multiplatform(KMP)を導入することで Kotlin の限界をさらに押し広げ、サーバーサイド、ウ
Kotlin 2.0がリリース、新コンパイラK2安定版で高速なコンパイルが可能に JetBrainsは2024年5月21日、同社が開発するプログラミング言語Kotlinの最新バージョンKotlin 2.0をリリースした。 Celebrating Kotlin 2.0: Fast, Smart, and Multiplatform | The Kotlin Blog What's new in Kotlin 2.0.0 | Kotlin Documentation Kotlin 2.0では、かねてから開発が進められてきた新しいコンパイラK2が安定版として搭載された。K2ではコードの構文解析、セマンティック解析、データフロー解析、呼び出し解決、および型推論などがすべて一新された。またIDEへのプラグイン経由で動作する際にはすべてのエラーと警告メッセージを報告し、自動補完、セマンティクス認識
KotlinのコードからWebAssemblyバイナリを生成可能、Kotlin/Wasmがアルファ版として提供開始 開発ツールのIntelliJ IDEAやプログラミング言語Kotlinなどの開発元であるJetBrainsは、これまで試験的プレビュー版だったKotlinのコードからWebAssemblyバイナリを生成する「Kotlin/Wasm」を、アルファ版として提供開始すると発表しました。 Kotlin/Wasm is now in Alpha and ready for you to try! Build web applications with Kotlin and use Kotlin/Wasm in your KMP projects. Take it for a spin and share your feedback with us! Learn more about t
はじめに シンプルな実装例 sealed型による実装のメリット enumに階層関係を持たせることができる 個々の値を型として扱える sealed型による実装のデメリット 言語仕様が提供する便利機能を利用できない まとめ We are hiring! はじめに blog.nnn.dev Kotlinのsealed型の使い方を考える記事の第2弾です。 前回の記事では、sealed型を使って論理和型を実装しましたが、今回は通常の enum class よりも機能を拡張したenum型を実装したいと思います。 シンプルな実装例 通常、Kotlinでenum型を使いたい場合は、enum class を使って、次のように実装します。 /** * 学校で教える教科 (抜粋) */ enum class SchoolSubjectEnum { /** 日本史 */ JAPANESE_HISTORY, /**
はじめに grpc-kotlin の実装に必要な要素 リクエスト・レスポンスクラス サービスクラス サーバークラス 普通に実装したときの不満点 不満1: 異なる関心事の混在 不満2: 共通処理 不満3: エラーハンドリング インターフェースを定義する validateAndConvertRequest process convertResponse エラーハンドリング おわりに We are hiring! & Kotlin Fest出展のお知らせ はじめに 過去にも何度か紹介しておりますが、現在開発中の新しい教材システムでは新たにgRPC通信によるKotlinサーバーを採用して開発が進められています。 blog.nnn.dev そして、技術選定の方針としてWebアプリケーションフレームワークはなるべくシンプルで薄くすることを決めたので、Spring Boot のような別フレームワークを介
こんにちは。食べログでAndroidアプリの開発をしているsadaです。 先日、6/22(土)に Kotlin Fest 2024 が開催されました! 弊社もたまごスポンサーとして協賛させていただきましたが、オフラインでの開催は実に5年ぶりということで、本当に楽しみにしていました。 弊社も協賛しております!#KotlinFest pic.twitter.com/UNT9V8PvIq— sada (@sadashi_ota) June 22, 2024 当日は、各セッションはもちろん、ブースや懇親会など、とても楽しい時間となりました。 Kotlin Festに参加された皆様、そして運営の皆様本当にありがとうございました! それではここからは参加レポートになります。 目次 セッション オープニングセッション パフォーマンスと可読性を両立:KotlinのCollection関数をマスター Kot
WebAssembly Advent Calendar 2023 と Swift/Kotlin愛好会 Advent Calendar 2023 21日目の記事です。 (枠が空いてそうだったのでKotlin愛好会の方のカレンダーにも登録してしまった) 以前 WasmGCで導入される型や命令のお勉強 という記事を書いてWasmGC primitivesを学んだので、次はKotlin/Wasmから生成されるWATファイルを眺めて Kotlinのhigh level constructsがWasmGCにどうマッピングされるのかを調べていく(お勉強の過程はこちら)。 Kotlin/Wasm から WAT を生成する kotlin-wasm-example/nodejs-example をいじくって出力を眺めていきます。執筆時のバージョンはKotlin 1.9.20。コンパイラに -Xwasm-gen
はじめに 今「あすけん」は大きなチャレンジをしています。 中長期的なサービスの成長を見据えて、アーキテクチャの見直しとシステムの再設計を行っています。 この再設計の一環として、PHPで構築された既存システムをKotlinを用いた新システムに置き換えるという大きな決断をしました。 さらに、より保守性の高いシステムを目指して、新しい手法も試しています。 具体的には「RDRA」「ICONIX」「ドメイン駆動設計」の考え方を取り入れて再設計を行っています。 今はまだ技術検証の段階ですが、一部の機能の分析・モデリングを行ってコードに落とし込んでいます。 課題も毎日のように見つかっています。しかし、日々解決と決断を繰り返し、少しずつ前進しています。 今回は、このような取り組みに至った経緯と言語選定についてご紹介します。 経緯 私たちの運用するサービス「あすけん」は2023年現在で10年以上の歴史があり
この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint"の 25 週目の記事です! 1 年間連続達成まで 残り 28 週 となりました! はじめに ログラスの小林(@mako-makok)です。 ご存知の方も多いと思いますが、Kotlin で data class 宣言をすると、copy というメソッドがそのクラスに対して自動生成されます。 この data class は便利な反面、様々な問題があり、copy メソッドをどうにかして隠したいというニーズがあります。 今回は ArchUnit を使ったアプローチをご紹介します。 Kotlin の data class 宣言で自動生成されるメソッド 改めて、Kotlin には data class という機能があります。 data class で宣言するだけで自動的にequals, hashCode, to
CA.swift #17 https://cyberagent.connpass.com/event/294197/ https://fortee.jp/iosdc-japan-2023/proposal/e9ffca7b-d40e-4e26-a393-0baf59c001d4 弊チームではKotlin Multiplatformを採用していますが、一部のメンバーが新機能開発等を通して試験運用していたため、本格的にチーム全体で運用し始めたのは2023年からとなります。 そこで、実際のアプリの機能を一部抜粋したチュートリアルプロジェクトを作成し、その演習に取り組んでもらうことでチームメンバーへのKMPのインストールを実施しました。 チュートリアルプロジェクトの一部を使って、Swiftの機能に対応するKotlinの機能を解説しつつ、KMPによって変換されることでSwiftからはどのように参照で
関連キーワード Java | JavaScript | プログラミング 「Kotlin」(コトリン)は、メインフレームアプリケーションからモバイルアプリケーションまで幅広く開発に使えるプログラミング言語だ。近年はKotlinをプログラミング言語「Java」と併用する、もしくはJavaの代替としてKotlinを採用するという動きが広がりつつある。Javaではなく、Kotlinが人気を集める理由はどこにあるのか。開発者がKotlinを好む理由を5つに分けて紹介する。 開発者がJavaより「Kotlin」を好む5つの理由 併せて読みたいお薦め記事 プログラミング言語に関するトピック なぜ今こそ「Java」なのか? 使いやすい言語な訳 「Haskell」は何ができるプログラミング言語? 4つの特徴とは 1.Javaとの互換性 KotlinはJavaをベースにしている。開発者はJavaのコーディング
Android Support for Kotlin Multiplatform to Share Business Logic Across Mobile, Web, Server, and Desktop Platforms Posted by Maru Ahues Bouza – Director, Product Management, and Jeffrey van Gogh – Director, Engineering Traditionally, developers must either write code individually for each platform they want to target, or make a number of compromises in order to reuse code across platforms. Android
Released: May 21, 2024 The Kotlin 2.0.0 release is out and the new Kotlin K2 compiler is Stable! Additionally, here are some other highlights: New Compose compiler Gradle plugin Generation of lambda functions using invokedynamic The kotlinx-metadata-jvm library is now Stable Monitoring GC performance in Kotlin/Native with signposts on Apple platforms Resolving conflicts in Kotlin/Native with Objec
はじめに ログラスの小林(@mako-makok)です。 この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint" の 4 週目 の記事です! 1 年間連続達成まで 残り 49 週 となりました! Kotlin でのエラーハンドリングの改善に向けて、kotlin-resultというライブラリを導入したのですが、使い始めて約半年経過しました。 今回は使ってみて実際にどうだったかを振り返ってみます。 What kotlin-result Rust のResultや、Scala の Either など、関数型の概念を取り入れた言語には例外ではなく、失敗する可能性のある処理は成功と失敗の型をシグネチャで表現できるようになっています。 kotlin-result は それらの表現を Kotlin でも利用できるようにしたライブラリです。 内部の実装を見てみるとそ
はじめに 惜しくも(?) Kotlin Fest 2024で採択とならなかったセッションの供養を行います。とはいえ、全ての内容を網羅することはせず、かいつまんで話したかった内容を書いていきます。 Railway Oriented Programmingとは? Railway Oriented ProgrammingとはScott Wlaschin氏によって提唱された設計です。 詳細は全て無料でこちらから見れるのでぜひチェックしてみてください。 簡単にいうとRailway Oriented Programmingとは正常ケースと異常ケースの2つのレールを型で表現しながら設計をする手法です。 関数型プログラミングでは、RustのResultやScalaのEitherに代表される成功値かエラー値かのどちらか一方の値を持ったデータ構造を使ってエラーハンドリングを行います。以下はRustのResul
はじめに アドベントカレンダーで書いた認可のベストプラクティスの記事が結構反応を頂けたのですが、最終的な結論が ユースケースによる という投げやりなまとめになってしまっていたのが少し気になっていました。 そこで、ユースケース別の実装パターンをより詳しく解説しようと思い、Kotlin Fest 2024にプロポーザルを出しました。 が、力及ばずお見送りとなってしまいました。 そんな中、Kotlin Festのスポンサーとしてログラスがブースを出展することになり、採択されなかったプロポーザルを紹介する 「ボツポーザル」 が企画されました。 ブースにお越しいただいた方々にスムーズに説明できるようにプロポーザルの内容を詳しく書き起こしています。 特に、前回の記事で詳しく触れられなかったユースケース別のKotlinでの実装方法や、DDDにおける認可の扱いについて調査したので、それらについて解説してい
順位を上げ続けるKotlinはいずれビッグ4に入るか プログラミング言語人気ランキング:「TIOBEインデックス」11月版 プログラミング言語の人気ランキング「TIOBEインデックス」の2023年11月版が公開された。Kotlinが順位を上げ続けており、TIOBE SoftwareのCEOは「Kotlinはいずれトップ10に入ると確信している」という。 ソフトウェア品質の評価と追跡を手掛けるTIOBE Softwareは、2023年11月版の「TIOBEプログラミングコミュニティーインデックス」(通称「TIOBEインデックス」)を発表した。TIOBEインデックスはプログラミング言語の人気度を示すランキングで、同社が毎月更新している。 TIOBEインデックスは、世界の熟練エンジニアや学習講座、サードパーティーベンダーの数に基づいて算出されている。レーティングの計算には、GoogleやBing
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く