JetBrains社が開発している Java VM や JavaScript 上などで動く、型の強いオブジェクト指向プログラミング言語。 以下の項目を設計目標に掲げている。
エラー防止の機能はよく働いており、Javaですっかりおなじみ「ぬるぽ」ことNullPointerExceptionがこの言語では意図的にプログラミングしないと出てくれないらしい…。
状況 jOOQのコード生成後にフォーマッティングするため、kotlinterを用いfinalizedBy("formatKotlin")としていたプロジェクトで、nu.studer.jooqからorg.jooq.jooq-codegen-gradleに移行する際、以下のようなエラーが出るようになりました(※編集しているため実際のエラーメッセージと異なる可能性あり)。 Reason: Task 'formatKotlinMain' uses this output of task '...' without declaring an explicit or implicit dependency…
概要 Web API: The Good Partsという本を読んで、Web APIの仕様内で統一を図ったほうが良い点があることが分かった。 たとえば、パスで使用する文字列の単語の分かれ目をどのように表現するのか。 この記事では、Spring Web MVCで実装したWebAPIのパスがケバブケースになっているかどうかをJUnitでテストする。 使用する言語やライブラリ Kotlin 1.9.25 Spring Boot Starter Web 3.3.3 JUnit Jupiter 5.10.3 方針 Spring Framework公式リファレンスによると、パスとリクエストハンドラのマッピ…
こんにちは! 技術本部 Sansan Engineering Unit Mobile Applicationグループの桑原です。この度、Sansanモバイルアプリでは開発スピードを加速させるため、実プロダクトにKotlin Multiplatform(以下、KMP)を導入しました! まずは1画面の導入から始めましたが、今後は既存の画面も順次KMPに移行していく予定です。この記事では、Androidエンジニアの視点から、SansanアプリにKMPを導入した背景やその成果、さらにKMPの設計についても簡単に紹介します。
最近、FlutterとKotlinの勉強を開始しました。 参考書を見ながら勉強を進めていたところ、今まで遭遇していないエラーが発生したので今後のためにメモとして残しておきたいと思います。 【Flutter】Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1.の解決法に関するメモ エラー内容としては以下です。 Module was compiled with an incompatible…
はじめに こんにちは。バックエンドエンジニアの齋藤です。 現在PHP→Kotlinへのリアーキテクチャを進めていますが、最近実装した機能でリリース前の負荷テストを行ったところ、JVMのクラッシュが発生しました。 リアーキプロジェクトでは、ECS・Fargate環境を利用していますが、JVMがクラッシュするとタスクが終了してしまい、エラーログ(hs_err_pidxx.log)を確認できず、また高負荷環境でのみクラッシュが発生するためローカルで再現もできず困っていました。ChatGPTから「S3に保存する方法がよいらしい」という情報をもらい、クラッシュ時にS3にログを保存して、後で確認できるよう…
Project StructureのSDKに指定しているJDKバージョンが違うのにcodegenTarget8Jvm8Testを使っていたのがダメだったらしい 指定されているJava 11に合わせ、codegenTarget8Jvm11Testを使うよう変更したら完全に通るようになった 試した限り、codegenTarget8JvmXXTestのXX部分はProject StructureのSDKに指定しているJDKバージョンに合わせるのが正しい 例えばcodegenTarget8Jvm11TestもJava 17指定で実行すると一部が失敗していた 関連 wrongwrong163377.ha…
こんにちは。AIトランスフォーメーションセンターの徳原です。 AI検査システムなど、AIによって業務をサポートするアプリケーションの開発を多く担当しています。 最近では、AIモデルの運用をスマートフォン上で完結させる形態のモバイルアプリ開発が増えており、AI運用の世界でもモバイル化が進んでいると感じています。 このような流れが生まれた理由としては、以下の3つが大きく寄与しています。 個人用のスマートフォンはもちろん、1人1台業務用のスマートフォンが普及した スマートフォンの性能が向上し、AIモデルの運用処理をスマートフォン1台で実施できるようになった AIモデル運用やデータサイエンスのためのモ…
こんにちは!kintoneチーム所属のAndroidエンジニア、トニオ(@tonionagauzzi)です。 2024年6月22日(土)に Kotlin Fest 2024 が開催されました。 サイボウズはスポンサーとして協賛し、会場にブースを設置しました! 参加レポート 今年のKotlin Festは、2019年以来のオフライン開催でした。 場所はベルサール渋谷ファーストです。 Kotlin Festのセッション 今年も多くのセッションがあり、Kotlinに関する選りすぐりの発表が行われました! 僕自身はブースで多くの時間を過ごしたので、録画や資料を追って確認したいと思います! サイボウズブ…
はじめに 2024年6月22日(土)に開催された、Kotlin Fest 2024に一般参加してきました。 これはその感想ブログです。 というのも、 #KotlinFest 2024良かった〜!懇親会で24年卒って聞いて、え?24歳ってこと??とか聞き返しちゃったよね。Compose Multiplatformで iOSとAndroidの違いを昔のブラウザの違いで例えて、インターネット老人会で申し訳ないんだけどとか言っちゃうくらいには老害でした。お詫びに感想ブログ書きます!— FORTE@aozorafm (@FORTEgp05) 2024年6月22日 と呟いた駆動ブログになります。 というの…
この記事は every Tech Blog Advent Calendar 2024(夏) 19 日目の記事です。 はじめに こんにちは、DELISH KITCHEN でクライアントエンジニアを担当している kikuchi です。 Kotlin Fest 2024 の開催が近づいてきましたので、今回は折角の機会ですので Kotlin に関わる話として DELISH KITCHEN で一部の処理を LiveData から Kotlin Coroutines Flow に移行した話をまとめてみたいと思います。 移行を考えた背景 現状 DELISH KITCHEN ではアーキテクチャに MVVM (…
やりたいこと 拾ってきた野良apkをデコンパイルしてJavaのソースコードを解析したい apkの仕組み Androidアプリのパッケージ形式 APK(Android Package)ファイルは、Androidアプリを配布・インストールするためのパッケージ形式だ。アーカイブファイルであり、ZIP形式で複数のファイルやディレクトリを含んでいる。 Javaからapkができるまで Androidアプリ開発では、Java(もしくはKotlin)でソースコードを記述する。このソースコードは、コンパイルされてDEX(Dalvik Executable)バイトコードに変換される。DEXバイトコードは、Andr…
はじめに 皆さんこんにちは、マネーフォワード ERP開発本部 ガーディアングループ クラウド経費チームのてっしーこと@tositeです。 私はFukuoka TechTalk(以下、TechTalk)という社内コミュニティの運営にも携わっています。 今日は福岡開発拠点で定期的に開催している社内向けテックイベント「Fukuoka TechTalk+(以下、TechTalk+)」の様子をお伝えします! ※ TechTalk+は前述したTechTalkの拡張回的な位置づけとなるイベントです。詳細は後述します。 TechTalkとは? TechTalkとは、2019年から福岡開発拠点で開催している社内…
はじめに こんにちは、DELISH KITCHEN でクライアントエンジニアを担当している kikuchi です。 昨今 AI がますます普及し業務で AI を活用する事例も増えてきましたが、Google が提供している Gemini が Android Studio の一機能として提供されていることをご存知でしょうか? 2024/9/13 時点ではまだプレビュー版ではありますが無料で公開されていますので、今回は実際に使用した際の環境構築手順、使用感などをまとめてみたいと思います。 Gemini の詳細は今回割愛しますが、Gemini は大きく分けて無料版の Gemini、有料版の Gemin…
ごあいさつ こんにちは。meviyを動かしているWebシステムを開発しています、大崎です。 実は今年の春の入社でして、これまでJavaやKotlin等を長く書いてきましたが、 DTダイナミクスに入社して初めてScalaを本格的にやることになりました。 既存コードを改修していく中で、Scalaならではのところで戸惑うシーンもありましたので、今から学習される方が少しでもスムーズに続けるように書き残したいと思います。 その中でも、まずはfor式について触れたいと思います。 また、本稿のScalaはバージョン2.13.14環境となっております。 for式の基本 forと聞くと繰り返しのループ処理を思い…
こんにちは!kintone 開発チームの Android エンジニア、トニオ(@tonionagauzzi)です。 2024年9月11日(水)〜13日(金) に DroidKaigi 2024 が開催されました!👏 サイボウズは今年もゴールドスポンサーとして協賛し、恒例のブース出展を行いました。また、Android エンジニアの臼井(@usuiat)がセッション登壇しました。 DroidKaigi 2024 の参加レポートを、会場からみなさまにお届けします! 参加レポート 今年はオフラインで、ベルサール渋谷ガーデンにて開催されました! 弊社ブースをオープンしました。いよいよここから! 「Dro…
200人くらいでハンズオンをしている様子です。見渡す感じ知らん人ばかりであり、進行も英語であり、そもそもKotlin何も分からんので新鮮味が凄いとおもいました。あとなんか適当に書いたらクロスプラットフォームで実行されるのでかなり強い。 #DroidKaigihttps://2024.droidkaigi.jp/timetable/9-11/
こんにちは、タイミーDevRelの河又です。 タイミーはDroidKaigi 2024にゴールドスポンサーとして協賛しています。 当日はブースも出展しておりますので是非、お立ち寄りください。 今回はDroidKaigiを前に一度、タイミーのAndroid開発を数字で振り返ろうという企画です。 Androidエンジニアの中川をインタビューアーとしてAndroid領域のリードエンジニアである村田にタイミーのAndroid開発についてインタビューする形式でお届けします! タイミーのAndroidアプリのクラッシュフリーレートについて 2022年 2024年現在 ※グラフ上の7日間、30日間の数値は当…
お疲れ様です\(^o^)/ 今回は超久々のAndroid studioでも話そうかなと。 NFCっていう機能を使うと、SuicaとかPASMOの履歴やら残高が見れるということで。 旧Android studioの方でちょい前にちょこちょこと作っていました。 先駆者の方々の記事をとても参考にしております。 いつもありがとうございます(^O^) で、旧Android studioで作ってたのですが…何か最新版が出たようで最新版で作り直しを始めたんですね。 で、どーーしても!Tagが取れなくて悩んでいましたw ハマりその1 旧Android studioの場合 val tag = intent.ge…
プログラミング言語の世界は、1950年代から現代までにわたり驚くべき進化を遂げてきました。科学技術計算からビジネスアプリケーション、そしてウェブやモバイル開発まで、各時代に登場した言語は、それぞれの時代のニーズに応じて進化してきました。本記事では、主要なプログラミング言語について、その開発者、特徴、そして簡単なコード例を交えながらその歴史を振り返ります。これから学び始める方にも、経験豊富なエンジニアにも、新たな発見があるかもしれません。 プログラミング言語概覧 1950〜1960年代 FORTRAN(1957) LISP (1960) COBOL (1960) ALGOL (1960) BAS…
こんにちは、マンガアプリチームのAndroidエンジニアの id:mangano-ito です。 さて、9/11 (水) 〜 9/13 (金) に開催されるDroidKaigi 2024において、はてなは今年もサポータースポンサーとして協賛しております。 2024.droidkaigi.jp DroidKaigiとは DroidKaigiはエンジニアが主役のAndroidカンファレンスとして、Android技術情報の共有とコミュニケーションを目的に継続して開催されています。今年で10年を迎えるDroidKaigiですが、本年は2024/9/11 〜 2024/9/13の三日間にわたって開催され…
😎 プログラミング学習サイト 👦 対象者 プログラミング入門本を読み終わった学生 キャリアの方向性に迷いが出てしまったエンジニア 🏁 ゴール このサイトの目標は、プログラミングに入門したての新米エンジニアに対して、プログラミング学習の「目的」と「手段」を見つけるヒントを示すことです。 やるべきこと、身につけたい技術が明白な方は「📗 目次」より各ページをご参照ください。 キャリア戦略の立案や取得技術の選択を行いたい方は エンジニアのためのキャリア戦略 から理想的なキャリアパスを構築しましょう。 📗 目次 キャリア エンジニアのためのキャリア戦略 コーディング Haskell Kotlin Kot…
注意:この記事の根拠は何もなく、主観的100%で書かれてます。 全ての文章に「私の偏見によると」をつけてお読みください。🙇 🧑💼 エンジニアのキャリアパスについての偏見 🏁 ゴール エンジニアのキャリアパスについての客観的な記事は既に存在しますが、主観的な記事を作成することで新米エンジニアに寄り添った記事が書けるのではと思い至りました。 この記事は、エンジニアのキャリアパスを見つけるためのヒントを主観敵に提供する試みです。 どんなキャリアパスを辿るべきか? エンジニアは二つの道があると思います。ユーザーに近いエンジニア、サーバーに近いエンジニアのどちらかです。 📱 ユーザーに近いエンジニア …
こんにちは、id:naokatuです はてなブログへの初投稿は2024年の夏に参加したはてなサマーインターンシップ2024について書いていきたいと思います。 参加するまで 修士1年ということもあり、インターンどこ行こうかな〜と考えていたときにはてなのインターンが開催されるというブログを見つけたことがきっかけでした。 書類選考通過後の面接では自分のgithubをよく見て頂いたようで嬉しかったです。面接はあまり選考されているような感じがなく、過去のはてなのインターン体験記や今年のインターン生と話をした感じ、みんな雑談のような雰囲気だったそうです。 講義パート そんなこんなで選考に受かり、無事参加で…
Reactの上達へのきっかけを掴んだ8月の学習の振り返りをしたいと思います。 8月の学習時間 結果:96.25時間 半年合計:705.25時間 HCに入って半年、本当に自分の時間のすべてを使って勉強して半年で700時間を達成できました。 もともとの目標が600時間だったため(年間1200時間ペース) 半年で700時間(年間1400時間ペース)はかなり上出来だと思っています。 しかしながら、まだロードマップは半分も進んでいません。やはりHCのロードマップは難しく 最新の技術を学ぶことは並大抵のことではないと感じています。 どうしても自分のポートフォリオをモダンな技術を使ってフルスタックで作成した…
Kotest(Kotlinテストフレームワーク) 概要 Kotlinの言語仕様で書けるテストフレームワーク。Junitよりもコード量を減らせる ネストして実装可能でどんなテストを書くかを継承させるSpecで変えられる 実装例 FunSpecを使った実装例。contextを使って階層構造を表現している。 アサーションとして、代表的なとしてshouldBe(イコールみたいなやつ。右辺になるべきとの表現)、shouldThrow(例外になるべき)などがある。 class CalcServiceFunSpecTest : FunSpec() { private val calc = Calc() in…