こんにちは、Android アプリエンジニアの id:kk__777 です。『Inside GigaViewer for Apps』連載8回目は、出版社向けマンガビューワのアプリ版である「GigaViewer for Apps」(以下 GigaApps)のVRTから静的解析まで、Androidのテストについてお話しします。 GigaAppsUnitTestの歴史と現在 概要 アーキテクチャとUnitTestの基本方針 使用しているツール モッキングライブラリ コルーチンディスパッチャの差し替え アサーション(Truth + Expect) テストツールの変遷UIテストの取り組みVRT(Visual Regression Testing)の導入と運用 概要 Compose Preview を使ったVRT GigaApps特有の難しさUIプラグインによるPreviewの難しさ どう対
5月14日、海外の技術メディアAIMが「Why Developers are Quietly QuittingGolang」と題した記事を公開した。この記事では、Go開発者が同言語を静かに離れつつあるという現状について述べられている。以下に、その内容を簡単に紹介する。Go に今逆風が吹いている 記事の冒頭では、フィンテック系スタートアップのエンジニア Yash Batra が半年でGo からKotlin へ全面移行した体験を取り上げている。Batra は「 私たちはツールを作るためにツールを作っていた 」と述べ、Go の最小主義がプロダクト開発の速度を著しく低下させたと回顧する。 また、長年Google でGo を率いてきた Ian Lance Taylor が 2025 年 4 月に退職したことも、コミュニティに衝撃を与えた。Taylor は「Go は“単なる一言語”の段階に

単一のSwiftコードからiOSアプリとAndroidアプリが作れる「Skip 1.0」正式リリース。SwiftをKotlinへトランスパイル iOSのネイティブアプリケーション開発には、開発ツールとしてXcodeを使い、Swift言語を用いてプログラミングを行うのが、iOSの開発元であるAppleが推奨する方法です。一方、AndroidではAndroid Studioを開発ツールとしてKotlin言語を用いてプログラミングすることがGoogleによって推奨されています。 しかしiOSとAndroidの両方で同じモバイルアプリケーションを展開したい場合、異なる開発ツールを使い分ける手間やプログラミング言語の学習コストを考えると、できれば単一のソースコードから2種類のプラットフォームへ展開できることが望ましいでしょう。 最近ではこうしたニーズに対応して単一のソースコードからマルチプラットフォ

ホットな話題に乗っかって、私がSpotBugsというJava向け静的解析ツールのOSS開発から手を引いた理由をまとめてみます。 自分がJavaを使わなくなった 先のブログでも指摘されている通りで、自分がそのソフトウェアを必要としなくなったというのは大きな理由になりました。Kotlinに乗り換えたことでJavaを書く機会がなくなり、Kotlinが生成したclassファイルの解析はSpotBugsには向かなかったので、SpotBugsを使わなくなりました。 SpotBugsにKotlin対応させることは技術的には可能ですが、ソースコードも考慮して解析できるdetekt(ktlint, diktat)がある世界でわざわざやることではないという感想です。 リターンが無かった 自分が使わないツールのメンテナンスを継続するには、やはりある程度の見返りを求めたいというのが自分の気持ちとしてありました。G
Kotlin/Wasmでサーバサイドアプリケーションを開発するフレームワーク「KoWasm」が登場。WebAssemblyのガベージコレクションやコンポーネントの活用を想定JetBrainsでKotlinの開発を担当するZalim Bashorov氏と、VMwareでSpring Frameworkのコミッタとして働くSébastien Deleuze氏は、Kotlinで書かれたコードをWebAssemblyバイナリにコンパイルする機能を備えた「Kotlin/Wasm」を用いて、WebAssemblyベースでサーバサイドアプリケーションを開発するフレームワーク「KoWasm」を発表しました。 KoWasmの開発にはKotlinおよびKotlin/Wasmの開発元であるJetBrainsのKotlin/Wasmチームと協力しているとのことです。Kotlin/WasmはWebブラウザ上のア

はじめに 皆様こんにちは、株式会社プラハのAwataです。 今日は、以前書いたリーダーの振り返り記事で軽く触れていた、RustでのAPI開発についての記事を書いていこうと思います。 結論RustでWebは辛い!という話なんですが、約5か月くらいRustでWeb開発をしたので、今後の参考になるようなことを書いていこうと思います。 ぜひ最後までお付き合いください。 TL;DRRustでWeb開発はまだ早いかもしれない。RustでDDDはやりやすい。ただしDIがやりにくい場合があるので、そこは要注意。Rustはモジュールの仕組みが協力なので、モジュラモノリスはやりやすい。 サンプルリポジトリはこちらRustはやっぱり難しいけど人気の理由も少し分かった気がする そもそもなぜRustでやってみようとなったのか 前例が少ない中、どうしてRustで開発しようと思ったのか気になる方も多いと思います

去年8年ぶりにvimrc を書き直した時はLSPの体験があんまりよくなくてLSPなしでNeovimを使い続けていたのだが、様々な言語のOSSをメンテする都合で用途に応じてIntelliJとVSCodeとNeovimの三刀流で暮らしていた結果、可能ならNeovimに寄せたいけどそれならLSPを使いたいなということになり、今回LSPの所を真面目に設定し直して、かなり良い体験になっている。 正直Neovimの設定はVSCodeのそれに比べたら面倒なんじゃないかという印象がありサボっていた節があるが、実際にやってみるとVSCodeと同程度に簡単に済む方法もあったので紹介したい。 何故Neovimなのか LSPの話の前に、タイトルだけ見た人がそもそも単にVSCode使えばいいじゃんと言いそうなので、どうしてIntelliJやVSCodeではなくNeovimに揃えようと思ったのかについて書いておく。
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフーTechBlogLINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く個々人に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。 今回登場するのは、Official Account開発室の室長兼AdNetwork & Performance室の室長として開発者のマネジメントを担当し、2022年4月よりBusiness Platform Developmentのフェローに就任した松野徳大。 松野のこれまでのキャリアやフェローとしての目標、エンジニアとして大切にしていることなど幅広いテーマについ

2020-10-27、kotlinx.coroutines 1.4.0 がリリースされました。 これにより SharedFlow と StateFlow が stable になり、 MVVM1 が実装しやすくなりました。 一方で、MVVM を十分に理解せずに使っている方がまだ多いように感じています。^MVVM を十分に理解せず そこで実際の実装の流れにそってサンプルプログラムの作りを見ながら、 MVVM はどのように設計すべきか、 これからはどのように実装するのがよいかを解説します。 なお、文中で紹介するソースコードは大幅に省略しています。 全体はこちらをご覧ください。 → https://github.com/sdkei/Android_MVVM_Mediator_Login 対象読者 次のことについて初級程度の知識を持っている方を対象にしています。Android Architectu

(2020年9月22日) この記事はZenn でも公開しています。Kotlin 標準の並行プログラミングAPI である coroutine を理解1したのでまとめました。本家のガイド は包括的で(上から読めば)丁寧に書いてあるのですが、実際に自分が読んだ際には理解に結構苦労したので、少し別のアプローチでの入門になります。 (はじめにお断り: Coroutine と Promise, async/await, Rx,etc…) 並行処理のAPI といえば、ここ数年だと「Promise」や「Rx」のような計算結果を表すオブジェクトを then() やmap() などでつなげていくスタイルか、「async/await」などと呼ばれるような計算結果オブジェクトを馴染みやすい形で書くスタイルが多いと思います。 coroutine の基本を学習する際には、一旦これらは忘れてもらった方が良

CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopersBlogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

2021年4月6日(米国時間)、Googleは公式ブログでAndroidオープンソースプロジェクト(AOSP)がモバイルデバイス向けオープンソースOS「Android」の開発において、オープンソースのシステムプログラミング言語「Rust」の導入を進めていることを明らかにした。Googleは2021年2月に設立された独立非営利団体「Rust Foundation」にも加盟している。Androidはこれまで、「C」や「C++」といったシステムプログラミング言語を用いて開発されてきた。Android開発にRustを導入した目的は、メモリ安全性のバグを予防することにある。 AOSPはこれまでもメモリ安全性のバグの検出や修正、軽減に注力してきたが、さらに予防を強化しようとしている。メモリ安全性を特徴とした言語の採用が、最も費用対効果の高い予防方法だとの認識から、Rustの導入に至った。 Andro

「Spring Native」ベータ版公開、GraalVMによりSpring FramworkのJava/Kotlinアプリをネイティブイメージにコンパイル。JavaVMに依存せず瞬時に起動可能 Spring Frameworkの開発チームとGraalVMの開発チームは、GraalVMを用いてSpring Frameworkのアプリケーションをネイティブイメージにコンパイルする「Spring Native」がベータ版として公開されたことを発表しました。 Announcing Spring Native Beta! Read theblog post https://t.co/5klXV6kSVB and check out the video for more details. #spring #native #graalvm https://t.co/83pI3vNYEr — Spri

シャットダウンが延期されました 読み取り専用として存続します JCenter のシャットダウンについては2022年2月1日へ延期になりました。 https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ UPDATE: To better support the community in this migration, JFrog has extended the JCenter new package versions submission deadline through March 31st 2021. To clarify, the JCenter repository will keep serving packages for 12 months until February

本記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です~~(なので上長からいきなりお前Android担当なと言われた)~~ 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない)ゲームは対象外です 業務でAndroidアプリを作ることを想定し

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2018年現在でもJava開発をしていると、Antすら使っていないEclipseプロジェクトにそこそこの頻度で出くわします。Eclipseの自動コンパイルが通ればOKであり、ビルドはExcel手順書をもとに手動で行われ、依存関係ライブラリはもちろんlibフォルダに各種jarファイルが放り込んであります。Eclipse上以外ではどう動かせば分かる人がいないため、コマンドラインからビルドなどを行うことは叶わず、CI化なんて夢のまた夢です。 そんなJava開発から脱却したい人向けのJava開発のモダン化ガイドです。 基本的にJava 8以降で

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く