皆さん、おはようございます!マイクです。今日は2025年3月18日、火曜日ですね!今日も「zenncast」にお付き合いいただきありがとうございます。今日はZennでトレンドの記事をいくつかご紹介しますよ!
さて、前回紹介した記事についてですが、今回は特に触れずに、さっそく今日の内容に移りましょう。
今日紹介する記事は全部で5本あります。1本目は「学生がiOSアプリの開発環境を整えるために」という記事です。こちらは、学生がiOSアプリ開発を始めるための環境整備についてのガイドです。まず、iPhoneはあれば使用できますが、なくてもシミュレーターを利用して開発可能です。実機が必要な場合は、中古のiPhone SE (2世代)を2万円程度で購入することが推奨されています。
次に、Macの選定についてお話しします。M1以降のチップを搭載したMacを選ぶことが重要で、メモリは16GB、ストレージは256GB以上が理想ですが、256GBでも開発には問題ありません。MacBookとMac miniのどちらでも良いですが、持ち運びの利便性からMacBookが推奨されています。特に中古のMacBook Pro 13インチ (M1・2020)は約10万円でおすすめですよ。
Apple Developer Programへの加入は、アプリをリリースする際に年約1万円かかりますが、なくても開発は可能です。教科書はネット上で十分で、独学で学ぶことができるので、時間をかけることで学習効果が得られます。お金がない場合でも、根気よく取り組むことが大切ですね。
最後に、10万円の予算でMacBook ProとiPhone SEを、5万円ならMac miniを選ぶことが可能です。もし資金が用意できない場合は、開発を始める前に状況を改善することを勧めています。また、iPadを持っている場合はPlaygroundを使ってアプリ開発もできるので、選択肢として考慮するのも良いでしょう。
。...。...
続いて2本目の記事は「【金欠学生向け】無料でもここまでできるフルスタック開発!」です。この記事では、金銭的理由で開発環境を確保しづらい学生向けに、0円でWebアプリを開発・公開するための技術スタックを紹介しています。主にフロントエンドにはNext.jsを使用し、バックエンドにはNext.jsのサーバー機能やFastAPIを活用します。
ホスティングはCloudflare Pagesを利用し、データベースにはCloudflare D1やSupabaseを活用する構成が提案されています。Next.jsはSSRや静的サイト生成に対応し、豊富なリソースが利用可能なフレームワークです。バックエンドは、Next.jsの「use server」を使うことで簡単にサーバー処理を実装でき、FastAPIは独立したAPIサーバーとしても利用可能です。
Cloudflare Pagesは無料で商用利用も可能で、デプロイが非常に簡単です。データベースはCloudflare D1がSQLite互換で、軽量かつ高速で使いやすい選択肢です。SupabaseはフルマネージドなPostgreSQLを提供し、認証機能も備えています。特にSupabase Authは、月間5万アクティブユーザーまで無料で利用でき、簡単に認証機能を実装できます。
開発中のアプリを外部に公開するためのツールとして、ngrokが推奨されており、ローカルサーバーを簡単に外部公開できます。全体として、これらのサービスを組み合わせることで、コストを抑えつつ実用的なWebアプリケーションを開発できる環境が整います。
。...。...
3本目の記事は「【Unity】UnityEngine.Objectの偽装null」です。この内容は、Unityにおける`UnityEngine.Object`のnullの挙動についての解説です。通常のC#のnullとは異なり、特に初心者が混乱しやすいトピックです。C#ではnullは値が無いことを示し、参照型の場合は`NullReferenceException`が発生しますが、Unityでは`UnityEngine.Object`のオブジェクトが`Destroy()`で破棄されると、表面的にはnullのように振る舞います。
これは実際には参照が生きているため、`obj == null`はtrueを返す一方で、`object.ReferenceEquals(obj, null)`はfalseを返します。この偽装nullの問題により、C#のnull演算子(`?`や`??`)が期待通りに機能せず、NullReferenceExceptionを引き起こす可能性があります。
この仕様の背後には、UnityのC++側の実装が関連しています。C#側では無効なオブジェクトをnullとして扱うことができるようになっています。その結果、メモリリークのリスクもあり、`Destroy()`後には明示的にnullを代入する必要があります。この仕様は互換性の問題から変更が難しく、今後もこのままであると考えられています。Unityでの開発時には、この偽装nullの特性を理解し、適切に対処することが重要です。
。...。...
4本目の記事は「【Cursor】FigmaにアクセスしてUIコードを自動生成!」です。Cursorを利用してFigmaのデザインデータからUIコードを自動生成する方法を紹介します。これまではFigmaのスクリーンショットを使ってコードを生成していましたが、デザイン仕様を正確に再現するためには手動で修正が必要でした。しかし、FigmaのMCP Serverを使うことで、デザインデータの取得が容易になり、実装が大幅に楽になります。
MCP(Model Context Protocol)とは、AIとFigmaのAPIの連携を可能にする仕組みです。Figmaデータを取得するための手順は、Figma APIキーを取得し、MCP Serverを立ち上げ、CursorのAgent機能でFigmaのURLを指定し、コードを生成することです。
Figma APIキーはFigmaの設定から生成し、Cursorの設定ファイルに記載します。設定が完了すると、Figmaのデザインを指定することで自動的にUIが実装され、デザインの精度が向上します。また、Figmaで使用されている画像も自動でダウンロードされ、手動でのエクスポート作業が不要になります。
実際に使用する際は、デザインの指定が大きいと実装精度が下がることがあるため、範囲を細かく分けて指示することが推奨されます。デザインシステムや共通コンポーネントを使用する場合は、ルールファイルに詳細を記載しておくと良いでしょう。この新しい手法により、特に小規模なタスクでは思い通りの実装が迅速に行える点が感動的ですが、大規模な画面の実装ではまだ改善の余地があると感じています。
。...。...
最後に5本目の記事は「GBDT系モデルで生存予測分析」です。この記事では、Kaggleの「CIBMTR - Equity in post-HCT Survival Predictions」コンペにおける生存予測分析の手法をGBDT系モデルを用いて解説しています。生存予測分析は、対象が特定のイベントに至るまでの期間を予測する手法で、データには観測打ち切りが含まれ、イベント発生の有無と観測期間が重要な要素となります。
CIBMTRコンペでは、造血細胞移植を受けた患者の死亡確率を予測するタスクが設定され、評価指標はc-indexです。これはモデルの予測が実際の生存時間の順序を正しく捉えているかを測るものです。
ベースライン手法として、ターゲットを生成して回帰タスクに落とし込む方法が挙げられます。Kaplan-Meier法を用いたターゲット生成の例や、イベント発生のデータから観測期間をリスクスコアに変換する方法も紹介されています。XGBoostやCatBoostには生存予測用の目的関数が実装されており、CoxモデルやAccelerated Failure Timeモデルを容易に利用できます。
上位入賞者の手法として、クラス分類と回帰にタスクを分解するアプローチが紹介され、最終的な予測を生成する方法が述べられています。
さて、今日はここまでです!今日ご紹介した内容を駆け足でおさらいすると、iOSアプリの開発環境からフルスタック開発、Unityの偽装null、Figmaの自動生成、そして生存予測分析についてお話ししました。次回もぜひお会いできるのを楽しみにしています!詳しい内容はショーノートに書いてあるので、そちらもチェックしてくださいね。番組の感想も大歓迎です!では、またね!