アルサーガパートナーズ の技術ブログ

[WWDC2023] iOS17におけるScrollViewの新機能 その2 (Scroll Transitions)

iOS 17では多くの新しいScrollViewモディファイヤが追加され、アプリ開発体験を大幅に向上させることを約束している。その1では4つのモディファイアを使ってみたが、この記事では、scrollTransition(_:axis:transition:)モディファイアに焦点を当てている。スクロールトランジションは、ScrollView内の表示領域に出入りするviewを変更することができる。それでは、詳しく見ていこう

[Swift] コードレビュー方法・ベストプラクティス(その1)

コードレビューは、簡潔なコードベースを維持するために重要なだけでなく、異なるコーディングスタイル(同僚のコーディングスタイル)を学ぶ方法としても重要だと考えている。さらに、優れたコードレビューでは、PMやQAがテスト中に発見できないような問題を発見することができる。この記事は、iOSのレビューでチェックすべき項目を示すことを目的としてる、、

[Mac] Android aabファイルをリバースエンジニアリングして中身を見る

生成したaabファイルの中を確認しないといけなくなったので その時の備忘録です。 bundletoolを使ってaabファイルをapkに変換する bundletoolとは https://developer.android.com/studio/command-line/bundletool?hl=ja 手順 ターミナルで以下のコマンドを叩く //bundletoolをまだインストールしていなければ入れる brew install bundletool //aabファイルをapkファイルに変換 bundletool build-apks --mode=universal -
R

NHKが大好きな人のAstroを用いたWebページ制作

はじめに 私はNHKが大好きです! 特にドキュメント72時間という、1つの現場に72時間撮影クルーが待機してそこに偶然居合わせた一般の方々へインタビューするドキュメンタリー番組が好きで毎週観ています! 番組の観覧応募は欠かさずしていて、The Coversの10周年を記念した斉藤 和義さんのスペシャルライブに当選したときは、坂本 龍一さんが生前の最後に演奏されたCR509

エンジニア達に聞いた「覚えておくと便利なGitコマンド」

はじめに 社内のエンジニアと「どのようなGitコマンドを頻繁に利用しているのか、特に便利だと感じているコマンドは何か」について話し合う機会がありました。 そのGitコマンドの中には筆者自身も知らなかったコマンドやオプションも含まれており、とても良い機会になったと考えています。 そこで今回は、エンジニアとの会話の中であがったGitコマンドのいくつか
Git

MutableStateFlowとMutableLiveDataの違い: MVVMパターンにおける視点から

はじめに Androidアプリを作りながらMutableStateFlowとMutableLiveDataの違いについて使い分けがよくわからなかったので。自分なりに調べた結果をまとめてみます。 これらはどちらもデータの変更を監視するためのクラスですが、それぞれが持つ特性は異なります。 MutableLiveDataとは? MutableLiveDataはAndroid Jetpackライブラリの一部で、ライフサイクルに統合されたデータ保持クラス

[WWDC2023] iOS17におけるScrollViewの新機能  その1

iOS 17では多くの新しいScrollViewモディファイヤが追加され、アプリ開発体験を大幅に向上させることを約束している。その新機能を使ってみて、どのように動作するかを本記事で示す。 以下で4つのモディファイヤについて詳しく説明する。 .containerRelativeFrame(_:alignment:) .scrollTargetLayout(isEnabled:) .scrollTargetBehavior(_:) .scrollPosition(id:) もしこの記事が気に入ったら、ぜひいいねや

【Flutter】margin/paddingの設定のTips

Containerでmargin/paddingを設定する際に楽コード量を減らせる実装について共有します! ソースコード とりあえずコード // これでも実装できるけど、下の方がスッキリ! // Container( // color: Colors.blue, // padding: const EdgeInsets.only(right: 16,left: 16), // child: const Text( // 'You have pushed the button this many times:', // ), // ), Container(

pod installで起きたエラー [!] Oh no, an error occurred.

つい先日、pod installをした時に、以下のようなエラーが出た。 [!] Oh no, an error occurred. Search for existing GitHub issues similar to yours: https://github.com/CocoaPods/CocoaPods/search?q=%5BXcodeproj%5D+Unknown+object+version.&type=Issues If none exists, create a ticket, with the template displayed above, on: h

【Flutter】グリッドの背景を作成する

どういうことか こういうものを作りたい。 画面いっぱいに方眼紙のようなグリッド(Grid)が広がっている。 コード Widget gridBackGround() { return Container( // 背景色の設定部分 decoration: const BoxDecoration( gradient: LinearGradient( colors: [ Colors.black, Colors.purple, Colors.pin

android AWS S3からImageUrlを発行してPush通知に画像を乗せるとクラッシュした話

発生内容 タイトルままなのですが AWS S3のImageUrlを使ってPush通知に乗せると UnknownHostExceptionが発生してクラッシュします。 Caused by java.net.UnknownHostException: Unable to resolve host "hogehoge.jp": No address associated with hostname at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156) at java.ne

[WWDC2023] SwiftDataを使ってみた。

CoreDataの後継者であるSwiftDataがついにリリースされたので、簡単なアプリで使ってみた。 SwiftDataを導入するには、6つの簡単なステップを踏む。 import SwiftData モデル作成 AppでmodelContainer作成 @Environment(\.modelContext)を宣言 @Queryを配列の変数につける モデルをcontextにinsertしてsave()を行えば完成 それでは、ひとつずつ見ていこう。 1. SwiftData移入 まずはimportしよう import SwiftData 2.

Next.js × NextAuth × Prisma × VercelPostgresで構築するモダン認証機能システム

はじめに 認証機能を一から作成したいと思い、Next.jsとNextAuthを使ったGithub認証機能の実装を行ったので、その手順を記事していきます。ユーザーデータ管理にPrismaを、データベースはVercelPostgresを使用しています。 ソースコード 実装したサンプルデータは下記リポジトリに格納しています。 https://github.com/MASAKi-cell/next-vecelPsotgres-app バージョン情報 今回実装したバージョ

Google Play Billing Libraryを使用してアプリに課金システムを統合

Google Play Billing Libraryを使用してアプリに課金システムを統合 Google Play Consoleを使用して課金システムを設定 課金タイプ 3つ 一時的な商品 一度購入すると消耗される商品(ゲーム内の通貨や特殊アイテムなど) 永続的な商品 一度購入すると永続的に利用できる商品(プレミアム機能のロック解除など) 定期購入 定期的に更新される購入(サブスクリプション型のサービスなど

クリックジャッキングとその対策について調べた件

こんばんは! いきなりですが、「クリックジャッキングとその対策」について調べた件の纏めになります。 セキュリティについて興味を持ち始めた今日この頃 本日も最後まで是非お付き合いください! クリックジャッキング とは何か クリックジャッキングとは、ユーザーを騙して、ユーザーが思っているものとは別のリンクやボタンなどをクリックさせることです 引