[{"data":1,"prerenderedAt":199},["ShallowReactive",2],{"projects-ja":3},[4,132,164],{"id":5,"title":6,"body":7,"description":97,"detail":98,"extension":99,"highlights":100,"icon":104,"iconLight":105,"kind":106,"links":107,"meta":116,"navigation":98,"order":117,"path":118,"period":119,"role":120,"seo":121,"stack":122,"status":127,"stem":128,"summary":129,"tagline":130,"__hash__":131},"projects_ja\u002Fprojects\u002Fwiser-locker.md","Wiser Locker",{"type":8,"value":9,"toc":88},"minimark",[10,14,18,22,45,48,51,54,74,77],[11,12,13],"h2",{"id":13},"解決したい課題",[15,16,17],"p",{},"プライベートな写真や動画は守る必要がありますが、あとから見つけられることも同じくらい大切です。同じ写真が旅行・家族・友人など複数のテーマに属することは多いのに、フォルダ階層ではどれか1つしか選べません。多くの「保管庫」アプリはプライバシーを守る一方で、整理のしやすさを後回しにしています。",[11,19,21],{"id":20},"wiser-lockerでできること","Wiser Lockerでできること",[23,24,25,33,39],"ul",{},[26,27,28,32],"li",{},[29,30,31],"strong",{},"端末内で暗号化。"," 写真・動画を暗号化して端末内に保存し、生体認証でロックを解除します。",[26,34,35,38],{},[29,36,37],{},"フォルダではなくタグ。"," 1つのファイルに好きなだけタグを付け、フィルタで組み合わせて探せます。",[26,40,41,44],{},[29,42,43],{},"保存済みフィルタ。"," よく使う組み合わせを保存し、ワンタップで開けます。",[11,46,47],{"id":47},"担当範囲",[15,49,50],{},"企画、要件定義、UI\u002FUX、タグとフィルタのデータ設計、暗号化と鍵管理、実装、パフォーマンス改善、Google Playでの公開、公開後の改善まで、すべて一人で担当しています。",[11,52,53],{"id":53},"設計で工夫した点",[23,55,56,62,68],{},[26,57,58,61],{},[29,59,60],{},"実績のある標準に基づくセキュリティ。"," メディアの暗号化、暗号化データベース、生体認証、安全な鍵保管を、確立された暗号ライブラリを組み合わせて実現しています。独自の暗号アルゴリズムは使いません。アプリ内ではスクリーンショットを制限しています。",[26,63,64,67],{},[29,65,66],{},"暗号化メディアでも快適な閲覧。"," 重い処理をUIスレッドから切り離し、サムネイル、ページング、遅延読み込みを組み合わせて、大量のメディアでも操作が重くならないようにしました。",[26,69,70,73],{},[29,71,72],{},"柔軟な整理を支えるデータモデル。"," タグと保存済みフィルタを暗号化したSQLiteデータベースで管理し、どのファイルでも任意のテーマの組み合わせで表示できます。",[11,75,76],{"id":76},"ステータス",[15,78,79,80,87],{},"AndroidアプリとしてGoogle Playで公開し、継続的に改善しています。Wiser Lockerは独立したプロダクトで、",[81,82,86],"a",{"href":83,"rel":84},"https:\u002F\u002Fwww.forgerwise.com\u002F",[85],"nofollow","Forger Wise"," は個人開発アプリのブランド名です。",{"title":89,"searchDepth":90,"depth":90,"links":91},"",2,[92,93,94,95,96],{"id":13,"depth":90,"text":13},{"id":20,"depth":90,"text":21},{"id":47,"depth":90,"text":47},{"id":53,"depth":90,"text":53},{"id":76,"depth":90,"text":76},"Wiser Lockerは、写真・動画を端末内で暗号化し、複数タグと保存済みフィルタで整理できるAndroidアプリです。王映傑（Ying Chieh Wang）が個人で企画・開発し、Google Playで公開しています。",true,"md",[101,102,103],"メディアは端末内で暗号化し、生体認証と安全な鍵保管でアクセスを保護。","単一のフォルダ階層の代わりに、複数タグと保存済みフィルタで整理。1枚の写真を「旅行」「家族」「友人」に同時に分類できます。","Forger WiseブランドとしてGoogle Playで公開し、継続的に改善。","\u002Fimages\u002Fapps\u002Fwiser-locker\u002Fmark-light.png","\u002Fimages\u002Fapps\u002Fwiser-locker\u002Fmark-dark.png","プロダクト・Android",[108,111,114],{"label":109,"href":110},"Google Play","wiserLockerPlay",{"label":112,"href":113},"wiserlocker.com","wiserLockerSite",{"label":86,"href":115},"forgerwise",{},1,"\u002Fprojects\u002Fwiser-locker","2025年2月 – 現在","個人開発 — 企画・デザイン・開発・公開",{"title":6,"description":97},[123,124,125,126],"Flutter","Dart","SQLCipher","Android","Google Playで公開中","projects\u002Fwiser-locker","プライベートなメディアを安全に保管しながら、あとから探しやすくしたい人のためのAndroidアプリです。","プライベートな写真・動画を端末内で暗号化し、フォルダではなくタグで整理できるアプリ。","KCmfvbzyFOvwChGHXhGd1H0-7P1gEw7C6c5bgSfMZSQ",{"id":133,"title":134,"body":135,"description":139,"detail":140,"extension":99,"highlights":141,"icon":145,"iconLight":146,"kind":106,"links":147,"meta":153,"navigation":98,"order":90,"path":154,"period":155,"role":156,"seo":157,"stack":158,"status":127,"stem":160,"summary":161,"tagline":162,"__hash__":163},"projects_ja\u002Fprojects\u002Ffoodlist.md","FoodList",{"type":8,"value":136,"toc":137},[],{"title":89,"searchDepth":90,"depth":90,"links":138},[],"FoodListは、食材と賞味期限を管理して家庭の食品ロスを減らすためのAndroidアプリです。Flutterで個人開発し、Google Playで公開しています。",false,[142,143,144],"課題：世界の食品廃棄の約60%は家庭で発生しており（UNEP Food Waste Index Report 2024）、食材の存在や賞味期限を忘れることもその一因。","解決策：食材を登録すると、緑・黄・赤の色分けで「まだ大丈夫」「早めに使う」「期限切れ」がひと目で分かる。","期限前のバックグラウンド通知、端末内保存による完全オフライン動作、多言語対応。","\u002Fimages\u002Fapps\u002Ffoodlist\u002Ficon.png",null,[148,150],{"label":109,"href":149},"foodListPlay",{"label":151,"href":152},"GitHub","foodListGithub",{},"\u002Fprojects\u002Ffoodlist","2023年7月 – 現在","個人開発 — 企画・設計・実装・公開・保守",{"title":134,"description":139},[123,124,159,126],"Hive","projects\u002Ffoodlist","家庭では、何が残っているか・いつ期限が切れるかを忘れることで食材が無駄になりがちです。FoodListは、その両方を管理する家庭向けの食材管理アプリです。","家にある食材と期限を把握して、家庭の食品ロスを減らすアプリ。","hzusUAWMoBn0NVW-exFB9_dCIAJDwxg0szjetg9F2k0",{"id":165,"title":166,"body":167,"description":171,"detail":140,"extension":99,"highlights":172,"icon":146,"iconLight":146,"kind":175,"links":176,"meta":183,"navigation":98,"order":184,"path":185,"period":186,"role":187,"seo":188,"stack":189,"status":194,"stem":195,"summary":196,"tagline":197,"__hash__":198},"projects_ja\u002Fprojects\u002Fbattlesnake.md","Battlesnake AI",{"type":8,"value":168,"toc":169},[],{"title":89,"searchDepth":90,"depth":90,"links":170},[],"大阪大学のPBL授業で開発したBattlesnakeの対戦AI。ソロ戦はA*探索、対戦は強化学習で構築しました。",[173,174],"Solo：A*による経路探索を提案・実装し、安全優先と食料優先のモードを切り替える戦略をPythonで作成。クラス内3位。","Duel：最初のモンテカルロ法では性能が不十分だったため、チームで強化学習へ方針転換。既存のオープンソース実装を参考に、自己対戦によるPPO \u002F A2Cモデルの学習・評価とゲームサーバーへの接続を担当し、クラス内1位。","授業プロジェクト・AI",[177,180],{"label":178,"href":179},"GitHub（Duel）","battlesnakeDuelGithub",{"label":181,"href":182},"GitHub（Solo）","battlesnakeSoloGithub",{},3,"\u002Fprojects\u002Fbattlesnake","2023年10月 – 2024年2月","主要実装（Solo）、学習・評価・API連携（Duel）",{"title":166,"description":171},[190,191,192,193],"Python","PyTorch","強化学習","A*","クラス内大会 1位","projects\u002Fbattlesnake","大阪大学のPBL授業でのチームプロジェクトです。公式のBattlesnake APIを通じて、クラスメートのAIと対戦しました。","ソロ戦はA*探索、1対1の対戦は強化学習によるゲームAI。","PJmJ27o2_Fl7Yk-sEvm77Yix-y2nMKykSIf8Ip34fc8",1789832904000]