macOS 10.5時代に開発した古いmacOSアプリを現代のOSに移植する作業を行っています。その…
macOS/iOSアプリ・SDK・ミドルウェア開発が専門の開発者です。プログラミング情報を公開しています。
アールケー開発代表。macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者。ObjC/Swift/C++使い。豊富な開発実務経験を基に、教育コンテンツ開発、技術書執筆、技術指導、技術セミナー講師、企業内研修講師、行政・自治体職員研修講師も行います。
|
https://twitter.com/studiork |
---|
Base国際化使用への移行: 古いmacOSアプリ移植ノウハウ
macOS 10.5時代に開発した古いmacOSアプリを現代のOSに移植する作業を行っています。その…
App Store Connect へアップロードするアプリはXcode 15が必須
2024年4月29日以降、App Store Connectにリリースするアプリは、Xcode 15…
米国向けにはアプリ内購入から他の購入方法にリンクを張れるようになった
Apple App Store Review Guidelines が改訂され、アプリ内購入で、他の…
Xcode 15.2の変更点: visionOSアプリの開発対応
Xcode 15.2が2024年1月8日にリリースされました。通常であれば、翌日には気がつくのですが…
Apple Silicon Macではセキュリティポリシーが導入され、サードパーティのKextはやや…
アプリケーション内にインストーラーパッケージを内包させたときの公証
この記事では、macOSアプリのパッケージ内にインストーラパッケージ(pkg)を適切に配置する方法について解説しています。Appleのガイドラインに準拠したディレクトリ構造の重要性、GateKeeperのコードサイニングとApple Notary Serviceの公証の成功に必要な配置方法、Xcodeでの設定手順、そして公証プロセスの動作確認までを説明しています。
この連載記事では、SwiftUIを使って独自のカラーピッカーを実装します。 連載目次
「プログラミング的思考」という論理的な思考方法をテーマにしたオンラインセミナーの紹介記事。日本では2020年度から小学校のプログラミング教育が必須化され、大人を含む多くの人々がこの思考方法を学びたいと考えています。このセミナーでは、Zoomのブレイクアウトルームを活用したグループワークやScratchのコーディング、アルゴリズムの考案などの演習を行いました。興味がある方は日本経営協会の東京本部へお問い合わせください。
DALL·E 3がChatGPTからも使えるようになりました。まだ、Beta版ですが、短いプロンプト…
Google AnalyticsからCloudflare Web Analyticsへの移行
少し前に、このWebサイトのアクセス解析ツールを移行しました。新たに導入したツールはCloudfla…
iOSのバージョンごとに、対応している機種をまとめました。 iOS 17に対応している機種 iOS …
汎用的なE Ink電子ペーパータブレット BOOX Tab UltraCを導入
電子書籍やWeb小説や漫画など、電子デバイスで書籍をじっくりと読むという機会が一般的になりました。私自身も紙の書籍も勿論読みますが、電子書籍を読むことが多いです。 例えば、Kindle。新書や雑誌、技術書などAmazonで購入するときは、こ
Mac App Store以外で配布されるMacアプリやツールの安全性を担保するための公証(Notarize)の仕組みを、notarytoolを使用して実施する方法について解説。公証はmacOSのセキュリティ機能で、Apple Notary Serviceにアプリを登録することで、ユーザーがそのアプリを安全に起動できることを保証します。公証の手続きはXcodeやnotarytoolを使って行うことができ、本記事ではnotarytoolを使ったコマンドラインベースの公証方法を詳しく紹介します。
2023年11月1日以降の公証はnotarytoolかXcode 14以降が必要
2023年11月1日以降の公証はnotarytoolかXcode 14以降が必要。2023年11月1日以降、Appleの公証サービスを利用して公証を受ける場合、notarytoolまたはXcode 14以降の使用が必要になることが発表されました。この記事では公証について改めて解説します。
通信速度を表示する機能を作るときや、重い処理を実装したときに目安の終了時間を表示する機能を作るときな…
ネイティブ言語でのmacOSアプリ開発に関する記事。使用される言語としてObjective-C, Swift, C++などを紹介。特にC++の進化とXcodeの対応に焦点を当てています。
レバテックフリーランス様の「技術のスキルアップを図りたいエンジニアにおすすめのサイトまとめ」に掲載されました
2023年5月26日に公開された、レバテックフリーランス様の「技術のスキルアップを図りたいエンジニアにおすすめのサイトまとめ」に、「アールケー開発公式サイト」と「Techgaku(アールケー開発テックブログ)」が掲載されました。 この記事で
WordPressでサイトパフォーマンスを大幅に向上させた方法
この記事では、WordPressで運用するウェブサイトのパフォーマンスを最適化する方法を紹介します。SWELLテーマの活用方法、リダイレクトの設定、遅延読み込みの活用、キャッシュの設定等を解説します。最適化後の効果として、パフォーマンススコアの大幅な向上が確認できました。これらの技術を活用して、サイトの読み込み速度を改善しましょう。
テックブログの英語翻訳改善: DeepL, Grammarly, そしてChatGPTの活用
アールケー開発のテックブログであるTechgakuには英語版のWebサイトがあります。 この英語版のWebサイトは、日本語版の記事を作ってから、手作業で翻訳するという手順で作成していました。しかし、手作業の翻訳だけだと時間がかかってしまうの
ChatGPTとの対話で学ぶ:GitHub IssuesのJSONをCSVに変換する方法
GitHubのIssueからJIRAに移行したいプロジェクトがあり、そのために次のような手順を踏みました。 GitHub CLIをインストールしセットアップする。 GitHub CLIを使ってIssueをCSVに書き出す。 書き出したCSV
既刊書4冊へのiOS 16/Xcode 14対応ガイド公開!
以下の既刊書4冊へのiOS 16 / Xcode 14対応ガイドが公開されました。読者の皆様、是非、ご確認ください。 基礎から学ぶARKit 基礎から学ぶMetal 基礎から学ぶSwiftUI 改訂2版 Objective-C逆引きハンドブ
2022年9月2日、以下を改正する総務省令が交付され、即日施工され、日本でも6GHz帯のWi-Fiが使用可能になりました。 電波法施行規則 無線設備規則 特定無線設備の無線設備の技術基準適合証明等に関する規則 この改正によりWi-Fi 6E
Chihuahua drawn like a realistic photograph. It is looking at the front while tilting its head slightly to the right fro
AI生成画像 : 夕暮れ時の車内から微笑むロングコートチワワ2
Long coat Chihuahua, watching me from the car. The sun is setting a little and the setting sun is behind me. Because of
AI生成画像 : 夕暮れ時の車内から微笑むロングコートチワワ
Long coat Chihuahua, watching me from the car. The sun is setting a little and the setting sun is behind me. Because of
Long coat Chihuahua, watching me from the car. The sun is setting a little and the setting sun is behind me. Because of
A sailboat is making its way in bright sunlight across the Pacific Ocean. In the driver's seat, a chihuahua is skillfull
Japanese monsters. プロンプト 画像生成AI : Dream Studio モデル : stable-diffusion-xl-beta-v2-2-2 スタイル : Cinematic ステップ数 : 50
車で窓越しにチワワが見つめているイメージ。 Cinematic photo, In bright, beautiful weather, a luxury car is driving down a straight road. The w
車の中から覗いているチワワのイメージ。 Chihuahua watching me from a car. プロンプト 画像生成AI : Dream Studio モデル : stable-diffusion-xl-beta-v2-2-2
チワワ画像を生成: Dream StudioとStable Diffusionの活用
生成系AIの一つに画像を生成するStable Diffusionがあります。Stable Diffusionを利用したWebサービスの一つにDream Studioがあります。 この記事ではDream Studioを使ってチワワの画像を生成
ChatGPTはOpenAIによって開発された大規模な自然言語処理AIです。言語に関する様々な質問やタスクに関して応答することできるサービスです。チャット形式でAIと対話的にやりとりができるサービスになっています。 最近、テレビや新聞などで
テックブログの英語版を作りました。 作り始めたのが2022年9月26日でしたので、完成までに2か月近くかかってしまいました。 英語版の作成に着手したときのテックブログの記事数は72件でした。当初は何もツールを使わずに自力で翻訳を進めたのです
色々なWebサイトを見ていると、Cookieに関する同意を求めるサイトが多くなったと思いませんか?Google Analyticsではトラフィックを分析するためにブラウザから分析に必要な情報を取得します。また、Cookieに間接的にでも個人
技術系のHow To記事の公開場所としての役割をテックブログに変更してから、こちらのブログの更新頻度がかなり低下してしまいました。テックブログはヘッダーのブログメニューやフッターにリンクを張ってあります。
ここのところ、こちらのブログの更新が少ないのですが、理由はテックブログに力を入れています。以前、別ブログとして立ち上げた「現役のプログラマーが書く プログラミング情報」というブログをテックブログとしました。
ここのところ、こちらのブログの更新が少ないのですが、理由はテックブログに力を入れています。以前、別ブログとして立ち上げた「現役のプログラマーが書く プログラミング情報」というブログをテックブログとしました。
Flutter3.0がリリースされました。今回のバージョンでは、macOSのデスクトップアプリの開発も正式に対応しました。私はMacアプリ開発者なので興味津々なのですが、まずは、インストール済みのFlutterのアップグレードからです。
Arnoldのレンダリング設定でデフォルト設定から変更した方が良さそうだなと思ったものや、一時的に他の値に変更しても普段は戻した方が良さそうだなと感じた設定のメモです。
MayaのAi Toonシェーダーを使うと漫画のような感じにレンダリングされます。この記事ではAi Toonシェーダーを使い方の紹介です。
レンダラーはレンダリングを行うプログラムです。レンダリングは3Dのデータ、例えば、頂点、エッジ、フェース、アトリビュート、テクスチャー、カメラ(視点)といった情報を元に、2次元の画像を描画する処理です。
こちらのブログも含めて、いくつかのブログを仕事用のブログに統合してから、自分自身で学習したことを仕事のブログに書こうと思っていたのですが、テーマが合わず、書きづらいなと感じていました。
ARKitを使ったARアプリの開発方法を解説した「基礎から学ぶARKit」を執筆しました。発売日は2022年4月21日です。詳細は次の記事をご覧ください。
Ubuntu Server に限らずですがシステム運用では、他のOSと同様にセキュリティアップデートの適用など、可能な限り最新版をインストールしていくことが重要だと思います。
ARKitは物理シミュレーション機能を持っています。アプリ内で動的に作成したモデルでも、USDZファイルから読み込んだモデルでも、物理情報やコリジョンの設定をすれば、重力も適用される物理シミュレーションが利用できます。
執筆中の「基礎から学ぶARKit」のCHAPTER 8ではコリジョンについて解説します。コリジョンは仮想コンテンツが別のコンテンツやシーン再構築によって構築されたメッシュとの衝突したときにイベントが発生する機能です。
Maya 2022にはUSD及びUSDZファイルを出力できるプラグインが付属しています。
現在、原稿執筆及び制作中の「基礎から学ぶ ARKit」の情報を公開しました。ARKitはiPhone / iPad上で動作するARアプリを作るためのフレームワークです。
ARKitの顔のトラッキング機能について、どのくらい精度良く素早くトラッキングできるのかを実感できるのが、これだと思います。ARKitで検出された顔をRealityKitでメタル調にレンダリングしています。
macOSに組み込まれているシステム整合性保護 (SIP: System Integrity Protection) 機能を一時的に無効化して、再度有効化するときの手順についてです。
ARKitで物体検出を行うためには、先に物体をスキャンしておいて、特徴点データを作っておく必要があります。
ここ最近のメインMacはMacBook Proなのですが、キーボードはHHKB Professional Hybrid Type-Sを使っています。
Macに接続するUSB機器と通信するプログラムを開発するときに、OSのバージョンによってコードやバイナリが異なるときにデバッグ環境をどうするかというお話しです。
Parallels Desktop 17.1 + Apple Silicon + Montereyゲストを試してみた
Paralles Desktop 17.1 で M1 Mac でも macOS をゲストOSとして使えるようになりました。どんな感じになるのか試してみました。
Hyper-Vで論理ボリュームのサイズが、仮想ディスクの半分しかないということがあります。Hyper-Vの仮想マシン上にUbuntuサーバーをインストールしたのですが、ルートボリュームが半分しかないということに気が付きました。
執筆中のARKit解説書のサンプルアプリで使用するカードデータを作成しました。サンプルアプリはこの画像をプリントアウトしたものをカメラで読み取らせてARコンテンツを表示します。
(解決) MagicKeyboardのトラックパッドが反応しない
iPad Pro 2021 に接続した Magic Keyboardのトラックパッドが突然、反応しなくなってしまいました。解決方法次の手順で私の場合は直りました。iPadとキーボードを切断する。
GitLabとElasticsearchを組み合わせたGitLab Advanced Searchをセットアップする
GitLabには組み込みの検索機能が2種類有ります。Free Tierでも使用可能な通常の検索機能とPremium Tier以上でのみ使用可能なGitLab Advanced Searchという検索機能です。
GitLabで管理しているドキュメントにはあなたは何を使っていますか?最終成果物を外部に渡したいときにはWordやExcel、PDF、Markdownなどをつかっていると思います。
Android StudioやAppCodeの割り当てメモリを変更する
このサイトの管理者の本業はソフトウェア開発です。その中でもMacやiOSアプリの開発が専門です。仕事でソフトウェア開発を行う方以外の方でも、プログラミングを学習する方が増えてきているように思われます。
iPad Pro 2021 に Magic Keyboard を導入
iPad Pro 2021 を導入しました。MacBook Pro 2020 M1 と同じM1チップを搭載した iPad Pro はとても快適です。今回はそんな iPad Pro をもっと便利に使いたい、講演や講師の仕事、打ち合わせなど、Xcodeでのコーディングが必要ないときには、MacBook ProではなくiPadを持って行きたい!そのためには高機能なキーボードが必要です。そこで導入したのが純正の Apple Magic Keyboard です。
最近のバージョンのWordにはPDF出力機能が入っていて、簡単にPDFを作れます。資料を作成したアプリを持っていない人でも、PDFにして渡せば開いたり印刷することができるため非常に便利です。
「TechGaku チュートリアル」というブログサイトを新たに公開しました。TechGaku チュートリアルでは、チュートリアル形式で色々なアプリの使い方や設定などを解説するブログです。
数ページになる書類をWordで作成するときは、「1. 概要」「1.2. 前提条件」などのように、見出しに段落番号や通し番号を付けると分かりやすい資料になります。
Xcodeでフレームワークや共有ライブラリの出力シンボルを制御する
Xcodeのデフォルト設定では、フレームワークや共有ライブラリで実装した関数や定数のシンボルがすべて出力されます。この記事ではすべてのシンボルが出力されてしまうことで起きる問題や制御方法について解説します。
SwiftのUnsafeMutableBufferは[]演算子よりも速い
UnsafeMutableBufferを使った記事を書いていて、ふと疑問に思った事があります。UnsafeMutableBufferを使ったコードと、[]演算子を使ったコードはパフォーマンスがどの程度変わるのか?です。
SwiftでCのポインタのインクリメント・デクリメントのコードを書き換える
C/C++でポインタを使ったバッファアクセスを行うときに、頻繁に使用するのがポインタのインクリメントとデクリメントです。ポインタの加算・減算なので、参照位置を変更することができ、連続したバッファで使用して順次アクセスができます。
flutter doctorで指摘されたAndroid Studioのセットアップ方法のまとめです。
flutter doctorで指摘された M1 Mac への JDK のインストールです。Flutterのセットアップ方法については次の記事を参照してください。
FlutterをM1 Mac上で使おうとすると、少し前までは色々動かないという状況だったようですが、アップデートが進み、問題が少なくなったようです。
昔作ったプログラムをSwiftで書き直す過程で、ポインタを使った処理の書き換えが必要になりました。このときに、どのように書いたかをまとめてみました。
SwiftUIには2種類のライフサイクルがあります。 UIKit App Delegate SwiftUI Appこの記事では、この2種類のライフサイクルの違いについて解説します。
M1チップを使ったMacが登場し、しばらくぶりにMacのアプリやフレームワークにもUniversal Binaryが使われるようになりました。
皆さんはドキュメント管理はどのようにされていますか?ソースコードは Git で管理しています。 Markdown で書いているドキュメントであれば Git で管理していることが多いと思います。
SwiftからC言語の関数を直接使うためには、Swiftでメモリバッファを考慮したコードを書く必要があります。Unsafe系のタイプを使う必要があり、分かりづらいコードが多くなります。この記事ではコード例を紹介します。
Hyper-V を使った Ubuntu Server のインストール
Hyper-Vを使い、仮想マシンに Ubuntu Server をインストールする方法を解説します。この記事では Windows Server 2016 を使用しています。Hyper-V が既にインストールされていることを前提にしています。
Windows Server 2016 への Hyper-V のインストール方法
Windows Server 2016 に Hyper-V をインストールするには以下の様に操作します。基本的には画面の指示に従っていくだけでインストールできます。(1) サーバーマネージャーを起動する。
このブログでも前に扱ったOpenCVという画像処理のライブラリがあります。OpenCVには色々な画像処理のアルゴリズムが実装されていますが、実際に使って見ると、自分で実装したときよりもかなり早いなぁということがあります。
Dockerでコンテナ化したnginxで、スタティックなコンテンツだけではなく、動的なコンテンツを表示したくなり、docker+nginxの環境で更にphpを追加しました。その方法をまとめました。
XcodeでGoogle Test (gtest) を使えるようにセットアップする
Xcodeにはユニットテストを実行する機能があります。Xcodeから実行できるユニットテスト機能はXCTestフレームワークのチェック関数を使って、クラスやメソッドの戻り値が期待値通りになっているかをチェックします。
Gitはファイルの履歴を管理しています。この機能のおかげで同じリポジトリを参照する人は、別の人が行った変更を取り込むことができます。
【Docker】 macOS Catalina 10.15 で使うときはプライバシー設定も確認する
Dockerでコンテナに、ホスト側のフォルダをマウントさせて、共有フォルダとして使う機能があります。この機能でマウントさせるフォルダにアクセスできないときのチェック箇所についてです。
定期的に実行されるバッチスクリプトなどで問題が起きたときの記録や、問題が起きていなくても、実行したことを記録したいときなどには、ログを出力することが一般的です。
【Python】ArgumentParserでコマンドライン引数を取得する方法
Pythonでシェルスクリプトを作ったときに、ArgumentParserクラスを使うと、簡単にコマンドライン引数を解析して取得できます。ArgumentParserクラスは、次のような機能を持っています。
macOS High Sierra 10.13からファイルシステムがAPFSに変わりました。それにより、ディスクユーティリティが作成するディスクイメージファイルのファイルシステムもAPFSになっています。
Finderと同じ方式のZipファイルをターミナルやシェルスクリプトで作る
macOSのFinderにはファイルやフォルダを圧縮してZipファイルを作る機能が入っています。このZipファイルはWindows上で作成するZipファイルとは少し異なります。
インストーラ形式で配布しているアプリでは、アプリ本体のNotarization対応の他に、インストーラもNotarizationに対応する必要があります。
Combine入門 Combineを使ってネットワーク接続する方法
この記事では、Combineを使ってネットワークアクセスする方法を解説します。Combineが初めての方やCombineの他の例については、次の記事もご覧ください。
Combineはアップル純正の非同期処理を実装するためのフレームワークです。SwiftUIのバインディングなどでも使われています。少し分かりにくいのですが、重要なフレームワークです。
Apple Notarization Service に対応するためのXcodeの設定
Apple Notarization Service に対応させて、アプリの公証を受けるためには、いくつかの方法があります。
Combine入門 CombineでTimer処理を行う方法
TimerもCombineに対応しています。Timerで定期的に実行される処理をCombineを使って設定出来るようになっています。この記事ではTimerの処理をCombineで行う方法についてです。
Combine入門 CombineでNotificationを受け取る方法
Combineはアップル純正の非同期処理を実装するためのフレームワークです。SwiftUIのバインディングなどでも使われています。重要なフレームワークです。Combineを使った他の例については以下の記事をご覧ください。
Webサーバーと通信するクライアントアプリのエラー処理で必ず必要になるのがHTTPのステータスコードです。色々なコードが定義されていますが、これだけ知っていれば、とりあえずは大丈夫だと思われるものをまとめました。
作っているアプリからHTTPに接続するときに、ネットワークの速度を制限したいことがあります。例えば、とても遅いネットワークや日本国外のインフラが整備されていない地域から接続されるようなときに、正しく動くかを確認したいようなときです。
OpenCVはオープンソースの画像処理やマシンラーニングを行うためのライブラリです。高機能で多くの機能を持っていて、画像処理やマシンラーニングの処理を一から全て実装するよりも効率的に開発が行えます。
「ブログリーダー」を活用して、林 晃さんをフォローしませんか?
macOS 10.5時代に開発した古いmacOSアプリを現代のOSに移植する作業を行っています。その…
2024年4月29日以降、App Store Connectにリリースするアプリは、Xcode 15…
Apple App Store Review Guidelines が改訂され、アプリ内購入で、他の…
Xcode 15.2が2024年1月8日にリリースされました。通常であれば、翌日には気がつくのですが…
Apple Silicon Macではセキュリティポリシーが導入され、サードパーティのKextはやや…
この記事では、macOSアプリのパッケージ内にインストーラパッケージ(pkg)を適切に配置する方法について解説しています。Appleのガイドラインに準拠したディレクトリ構造の重要性、GateKeeperのコードサイニングとApple Notary Serviceの公証の成功に必要な配置方法、Xcodeでの設定手順、そして公証プロセスの動作確認までを説明しています。
この連載記事では、SwiftUIを使って独自のカラーピッカーを実装します。 連載目次
「プログラミング的思考」という論理的な思考方法をテーマにしたオンラインセミナーの紹介記事。日本では2020年度から小学校のプログラミング教育が必須化され、大人を含む多くの人々がこの思考方法を学びたいと考えています。このセミナーでは、Zoomのブレイクアウトルームを活用したグループワークやScratchのコーディング、アルゴリズムの考案などの演習を行いました。興味がある方は日本経営協会の東京本部へお問い合わせください。
DALL·E 3がChatGPTからも使えるようになりました。まだ、Beta版ですが、短いプロンプト…
少し前に、このWebサイトのアクセス解析ツールを移行しました。新たに導入したツールはCloudfla…
iOSのバージョンごとに、対応している機種をまとめました。 iOS 17に対応している機種 iOS …
電子書籍やWeb小説や漫画など、電子デバイスで書籍をじっくりと読むという機会が一般的になりました。私自身も紙の書籍も勿論読みますが、電子書籍を読むことが多いです。 例えば、Kindle。新書や雑誌、技術書などAmazonで購入するときは、こ
Mac App Store以外で配布されるMacアプリやツールの安全性を担保するための公証(Notarize)の仕組みを、notarytoolを使用して実施する方法について解説。公証はmacOSのセキュリティ機能で、Apple Notary Serviceにアプリを登録することで、ユーザーがそのアプリを安全に起動できることを保証します。公証の手続きはXcodeやnotarytoolを使って行うことができ、本記事ではnotarytoolを使ったコマンドラインベースの公証方法を詳しく紹介します。
2023年11月1日以降の公証はnotarytoolかXcode 14以降が必要。2023年11月1日以降、Appleの公証サービスを利用して公証を受ける場合、notarytoolまたはXcode 14以降の使用が必要になることが発表されました。この記事では公証について改めて解説します。
通信速度を表示する機能を作るときや、重い処理を実装したときに目安の終了時間を表示する機能を作るときな…
ネイティブ言語でのmacOSアプリ開発に関する記事。使用される言語としてObjective-C, Swift, C++などを紹介。特にC++の進化とXcodeの対応に焦点を当てています。
テックブログの英語版を作りました。 作り始めたのが2022年9月26日でしたので、完成までに2か月近くかかってしまいました。 英語版の作成に着手したときのテックブログの記事数は72件でした。当初は何もツールを使わずに自力で翻訳を進めたのです
色々なWebサイトを見ていると、Cookieに関する同意を求めるサイトが多くなったと思いませんか?Google Analyticsではトラフィックを分析するためにブラウザから分析に必要な情報を取得します。また、Cookieに間接的にでも個人