並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 19 件 / 19件

新着順 人気順

Kotlinの検索結果1 - 19 件 / 19件

  • Kotestで使われる不思議な記法の裏側について調べてみた - RAKUS Developers Blog | ラクス エンジニアブログ

    はじめに 皆さん!初めまして! 楽楽請求新卒エンジニアの kaihatsuda です。 本記事では、Kotlin のテストフレームワーク Kotest に使われている Kotlin の特徴的な記法や技術を紐解いていきます! (本記事は Kotest の 使い方解説 ではなく、その背後にある Kotlin の技術を理解することに焦点を当てていますので、ご了承ください。) 私たちが開発する 楽楽請求 では、サーバーサイドの実装に Kotlin を採用しています。テストコードの記述も開発サイクルに欠かせない重要な工程の一部として位置づけられており、品質を担保するための必須要素になっています。特に、テストコードの 簡潔さ や 可読性の高さ は、効率的な開発において非常に重要です。 楽楽請求では、単体テストを記述するために Kotest を採用しています。私自身、学生時代に単体テストを書く経験がほと

      Kotestで使われる不思議な記法の裏側について調べてみた - RAKUS Developers Blog | ラクス エンジニアブログ
    • マルチテナントアプリで行うイベント計測のしくみ - Hatena Developer Blog

      こんにちは、Androidエンジニアのid:r4wxiiです。『Inside GigaViewer for Apps』連載5回目は、メディア共通機能の1つであるイベント送信機能を、GigaViewer for Apps(以下、GigaApps)の標準機能として実現するための設計について紹介します。 イベント送信機能とは GigaAppsのイベント送信機能が複雑となってしまう理由 メディアによって異なる計測プラットフォーム メディアによって異なるイベント GigaAppsにおけるイベント送信機能を噛み砕いた設計 メディアによって異なる計測プラットフォーム メディアによって異なるパラメータ イベントを適切に振り分けて送信する 実装 イベントを送信する メディアによって異なる計測プラットフォームを扱う メディアによって異なるパラメータを扱う イベントを適切に振り分けて送信する 終わりに イベント

        マルチテナントアプリで行うイベント計測のしくみ - Hatena Developer Blog
      • Accelerating CI with AWS CodeBuild: Parallel test execution now available | Amazon Web Services

        AWS News Blog Accelerating CI with AWS CodeBuild: Parallel test execution now available I’m excited to announce that AWS CodeBuild now supports parallel test execution, so you can run your test suites concurrently and reduce build times significantly. With the demo project I wrote for this post, the total test time went down from 35 minutes to 6 minutes, including the time to provision the environ

          Accelerating CI with AWS CodeBuild: Parallel test execution now available | Amazon Web Services
        • AWS CodeBuild を利用した CI の高速化: 並列テスト実行が利用可能に | Amazon Web Services

          Amazon Web Services ブログ AWS CodeBuild を利用した CI の高速化: 並列テスト実行が利用可能に AWS CodeBuild で並列テスト実行のサポートが開始されたことをお知らせします。これにより、テストスイートを同時に実行し、ビルド時間を大幅に短縮できます。 この記事のために作成したデモプロジェクトでは、環境をプロビジョニングする時間を含め、テストの合計時間が 35 分から 6 分に短縮されました。AWS マネジメントコンソールの次の 2 つのスクリーンショットは、その差を示しています。 テストスイートの順次実行 テストスイートの並列実行 継続的インテグレーション (CI) を大規模に実行する際に、テスト時間が非常に長くかかることは大きな課題となります。プロジェクトの複雑さが増し、チームの規模が大きくなるにつれて、包括的なテストスイートの実行に必要な時

            AWS CodeBuild を利用した CI の高速化: 並列テスト実行が利用可能に | Amazon Web Services
          • Gaudiyで3年間エンジニアしたのでDev組織について語る|ruwatana

            2022年の6月に入社したGaudiyをこの度退職する運びとなりました。 この記事では、約3年ほどエンジニアとしてお世話になった感謝の意も込めつつ、Gaudiyの特にDev組織について改めて特徴や魅力について自分なりの目線から語ってみようと思います。 GaudiyのDev組織が気になっている方や、これからGaudiyに入社を検討されている方などの参考になれば幸いです。 なぜ入社したのか当時の自分のスタックはモバイル領域(主にiOS)と、社内データソースやプライベートクラウド中心の薄いサーバーサイド領域だけでした。 一般的なプロダクトエンジニアに求められるそれとは乖離していて、コンプレックスがあったのも事実です。 そのため、ものづくりをする上で必要なエンジニアリング技能を俯瞰しつつ扱えるようになりたいという想いと、事業的なビジョンにも共感できたのでそれによっても熱量高く働けるのではないかとい

              Gaudiyで3年間エンジニアしたのでDev組織について語る|ruwatana
            • なぜLINEは600以上のテストケースをKotlinで書くのか? “とにかく便利なテスト”を実現する、kotestのお役立ち機能 | ログミーBusiness

              LINEが定期的に開催する、Kotlinをテーマにした技術者向けのミートアップ「LINE Developer Meetup for Kotlin」。今回は「LINEにおけるServer Side Kotlinの導入事例と開発裏話」をテーマに開催します。ここで登壇したのは、「Messaging API」のサーバーサイドを開発している川田裕貴氏。システムの改善における取り組みについて発表しました。全2回。後半は、「Messaging API」のテスト環境について。前回はこちら。 End to EndでテストができるテストケースをKotlinで書いている川田裕貴氏:前半はMessaging APIの話をしてきましたが、後半はちょっと話を変えます。Messaging APIの中ではテストをいろいろ動かしているのですが、テストケースも全部Kotlinで書いています。普通のユニットテストではなく、En

                なぜLINEは600以上のテストケースをKotlinで書くのか? “とにかく便利なテスト”を実現する、kotestのお役立ち機能 | ログミーBusiness
              • Android のマルチモジュール化で Preview の高速化 - Diary

                今回は Android のプロジェクトをマルチモジュール化し、Jetpack Compose の Preview を高速化してみました。 [目次] 環境 マルチモジュール化のメリット デメリット マルチモジュール化の方法 プレビュー速度の向上 Links おわりに 環境 - PC - macOS version 12.4 - Apple M1 chip - Memory 16 GB - Android Project - compose "1.3.0-rc01" - kotlin "1.7.1" マルチモジュール化のメリット ビルド時間の短縮 2 回目以降のビルドは、変更の入ったモジュールのみになるため速い! レイヤー間の依存関係の強制 各モジュールの関心ごとを小さくできる package ではクラスのグルーピングしかできないが、レイアウトファイルや resource 等も含めたグルーピン

                  Android のマルチモジュール化で Preview の高速化 - Diary
                • Hexabase公式コラム | DX推進・AI活用の最新情報をお届け

                  WebAssembly(WASM)はJavaScriptを除き、ブラウザ上での動作が保証された実行環境です。WASMはあくまでも実行環境であり、プログラミング言語ではありません。そのため、WASMバイナリに変換できる言語は幾つも存在します。 そうした言語を使うことで、普段自分が作っているプログラミング言語からWASMバイナリを生成できます。JavaScript以外の言語を使ってWebアプリケーションの開発が可能になります。 この記事では主なプログラミング言語と、その利用法を紹介します。 Rust RustはMozillaの開発するプログラミング言語で、WebAssembly向けに開発するのであれば一番お勧めの言語になります。元々RustやC、C++がWebAssembly向けに開発できる言語となっていたので、最新の機能を一番早く実装されるでしょう。 Rustは元々CやC++を置き換える存在

                  • Model Context Protocol(MCP)とは?生成 AI の可能性を広げる新しい標準

                    はじめに こんにちは。クラウドエースの荒木です。 ChatGPT や Claude などの生成 AI が日常生活やビジネスに浸透してきましたが、これらの AI の真価は外部システムと連携したときに発揮されます。しかし、この連携には大きな課題がありました。 これまで AI と外部システムを連携させるには、システムごとに個別の API 統合が必要で、認証方法やデータ形式、エラー処理など、細かな実装を繰り返す必要がありました。このような個別対応は開発効率を下げ、拡張性や保守性の面でも問題がありました。 そこで登場したのが「Model Context Protocol(MCP)」です。2024 年 11 月に Anthropic が発表したこのオープンプロトコルは、AI と外部システムの接続を標準化し、開発者の負担を大幅に軽減します。 この記事では、MCP の基本概念から実装方法、活用事例まで、技

                      Model Context Protocol(MCP)とは?生成 AI の可能性を広げる新しい標準
                    • コード品質向上のテクニック:第64回 プライマリコンストラクタはシンプルにする

                      こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している大石です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 64 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) プライマリコンストラクタはシンプルにする 以下のような MessageCard クラスがあるとします。 class MessageCard(userId: String, addressBook: AddressBook, messageTemplate: String) { val name:

                        コード品質向上のテクニック:第64回 プライマリコンストラクタはシンプルにする
                      • 分散データベースエンジニア(メッセージングサービス)/ LINE Platform|LINEヤフー株式会社

                        ポジション概要「LINE」で1日にやりとりされるメッセージの総数は数百億単位です。これは数千台のサーバーと、その上で動くRedis ClusterやHBaseなどの分散ストレージミドルウェアによって実現されています。これらのミドルウェアは、秒間数百万のクエリを処理し、数ペタバイトのデータを扱える性能を発揮します。しかし、「LINE」規模の実サービスでは、特定の条件下でのみ発生するパフォーマンス劣化の問題や、世界中でまだ誰も遭遇していないバグに直面することが頻繁にあります。 本ポジションでは、「LINE」のメッセージングおよび関連サービスの機能開発・保守を他のチームと連携しながら、これらの困難な課題を解決してくれるエンジニアを募集しています。 組織のミッション・展望 メッセージングおよび関連サービスに必要なストレージの重要な機能の開発およびサポート ベストプラクティスを採用した、スケーラブル

                          分散データベースエンジニア(メッセージングサービス)/ LINE Platform|LINEヤフー株式会社
                        • Gaudiyで3年間エンジニアしたのでDev組織について語る|ruwatana

                          2022年の6月に入社したGaudiyをこの度退職する運びとなりました。 この記事では、約3年ほどエンジニアとしてお世話になった感謝の意も込めつつ、Gaudiyの特にDev組織について改めて特徴や魅力について自分なりの目線から語ってみようと思います。 GaudiyのDev組織が気になっている方や、これからGaudiyに入社を検討されている方などの参考になれば幸いです。 なぜ入社したのか当時の自分のスタックはモバイル領域(主にiOS)と、社内データソースやプライベートクラウド中心の薄いサーバーサイド領域だけでした。 一般的なプロダクトエンジニアに求められるそれとは乖離していて、コンプレックスがあったのも事実です。 そのため、ものづくりをする上で必要なエンジニアリング技能を俯瞰しつつ扱えるようになりたいという想いと、事業的なビジョンにも共感できたのでそれによっても熱量高く働けるのではないかとい

                            Gaudiyで3年間エンジニアしたのでDev組織について語る|ruwatana
                          • Pythonを使ったAndroidアプリ開発の方法:Kivy, BeeWare, Chaquopyを徹底解説

                            はじめに Androidアプリ開発といえば、一般的にはJavaやKotlinが使われます。これらはGoogle公式の開発言語であり、Android Studioを使った開発環境とともに多くの機能をサポートしています。しかし、Android開発を始めるためには、JavaやKotlinの知識が必要であり、開発環境の構築も少し複雑です。 一方、Pythonはシンプルで読みやすいコードが書けるため、多くのエンジニアに親しまれています。これを使ってAndroidアプリを開発できたら、Pythonの豊富なライブラリや簡単な記述の利点を活かしながら、モバイルアプリを手軽に作成できるようになります。 PythonでAndroidアプリを開発するメリットには、次のようなものがあります。 学習コストが低い:JavaやKotlinよりも簡単に学べるPythonを使えることで、初心者にも優しい環境です。 迅速なプ

                              Pythonを使ったAndroidアプリ開発の方法:Kivy, BeeWare, Chaquopyを徹底解説
                            • AI時代を生き抜く "人力Multiplatform芸人" の思索 - inSmartBank

                              こんにちは。スマートバンクで iOS / Android エンジニアをしている nakamuuu です。 2023年以降、Jetpack のライブラリ群をはじめとするAndroidエコシステムでの Kotlin Multiplatform のサポートが加速する中で、マルチプラットフォームツールに関する議論が活発になっています。 Flutter / React Native なども含め、iOS / Androidアプリのコード共有技術はモバイルアプリ開発における主要トピックとして継続的に注目を浴びてきました。 android-developers.googleblog.com 一方でそのようなソリューションを採用しないプロダクトでは、iOS / Android の両プラットフォームの実装を同じ開発メンバーが担うこともあるでしょう。また、両実装を担当しないまでも、iOS / Android の

                                AI時代を生き抜く "人力Multiplatform芸人" の思索 - inSmartBank
                              • 【Android】アプリにPythonのプログラムを組み込む - Qiita

                                はじめに Androidアプリは通常kotlinやFlutterを使って実装しますが、プラグインを用いる事で、Androidアプリのプログラムの中に、Pythonのプログラムを組み込むことができます。そうする事で、例えば、Pythonでお手軽に機械学習の実装をしてAndroidアプリに組み込むことができます。Androidのアプリを開発する中で「Pythonだったら簡単にできるのに…」と感じたことがある方に、ぜひ読んでいただきたいです。 動作環境 Android Studio Hedgehog | 2023.1.1 Patch 2 kotlin 1.9.22 macOS 14.1 Python 3.9.6 Pythonの導入準備 Android Studioで空のプロジェクトを作成し、Pythonを導入するためにChaquopyというプラグインを追加します。build.gradle.kts

                                  【Android】アプリにPythonのプログラムを組み込む - Qiita
                                • Cline for IntelliJを作ってみる - Qiita

                                  AIエージェントがすごく流行っていますが、だいたいVSCode関連で悲しいです。 JetBrainsにも欲しいです。 ということで、作ってみました。 Clineの最初期のバージョン(Claude Dev 1.0.4)をIntelliJプラグインとして再実装しています。 バグや未実装の機能がたくさんあるので実用に耐えうるものではありませんが、それっぽく動作するものは作ることができました。 デモ Hello Worldを作ってもらいました。 実装 バックエンド バックエンド(Claudeと通信する部分)は、大部分がClineをそのままKotlinに書き換えたものです。 ClaudeDev.tsがCline.ktに、ClaudeDevProvider.tsがClineService.ktに書き換えられています。 tree-sitterはKotlinで実装するのが面倒そうだったので、node.js

                                    Cline for IntelliJを作ってみる - Qiita
                                  • Androidで秘匿情報をNDKで隠蔽化する - Qiita

                                    # include <string.h> # include <jni.h> JNIEXPORT jstring JNICALL Java_com_shcahill_ndksample_MainActivity_stringFromJNI(JNIEnv *env, jobject thiz) { return (*env)->NewStringUTF(env, // 秘匿情報の文字列(ここのコメントは残ってしまうので、実際には書かない) "string from JNI!"); } 関数名は命名規則があります。 先頭にJava_をつける パッケージ名を_繋ぎでつける 呼び出すKotlin/Javaコードのファイル名をつける(拡張子は付けない) 関数名をつける この例だと、MainActivityからstringFromJNIという名前で呼び出せます。 また、この例の場合、thizが未使用だ

                                      Androidで秘匿情報をNDKで隠蔽化する - Qiita
                                    • ScalaのOptionってなんやねん - DTダイナミクス テックブログ

                                      ごあいさつ こんにちは。meviyのGrowthチームで開発している林です。 もともとJava/Kotlinを利用して開発しているところからScalaを利用した開発に飛び込んでまずハマったOption型について話してみようかと思います。 Option型とは そもそもOption型ってなんなんでしょうか? Wikipediaによると以下のようなものです。 プログラミング言語と型理論において、Option型(英語: Option type)またはMaybe型(英語: Maybe type)は存在しない可能性のある値をカプセル化して表す多相型である。 結果が返ってくるかわからない、使うときに中身空かもしれないよーってことですね。 シュレディンガーの猫みたいな性質してやがります… この概念がなかなか理解できず入社当初は苦労した記憶があります。 (一応JavaにもOptional型というのがあるんで

                                        ScalaのOptionってなんやねん - DTダイナミクス テックブログ
                                      • Hexabase公式コラム | DX推進・AI活用の最新情報をお届け

                                        JavaScriptやCSS、HTMLをブラウザ上で記述して実行できるサービスは数多く存在します。こうしたサービスは大きく分けて二種類あります。ブラウザだけで完結するものと、サーバーサイドに実行環境を持つものです。 後者の特徴として、最近のJavaScriptライブラリのようにトランスパイルが必要なプロジェクトにも対応できるという点が挙げられます。たとえばReactやVue.jsなどでも実行ができるので、より複雑なプロジェクトでも使えるのが魅力です。 今回はそうした実行環境があるスニペットサービスを紹介します。 Replit ReplitはJavaScriptだけでなく、以下の言語に対応しています(一部)。 Python Node.js C++ C Java PHP Bash Ruby C# Go言語 Lua Kotlin Dart これらのプロジェクトのコードを書き、Replit上で実行

                                        1