タグ

ブックマーク / akisute.com (24)

  • セキュリティを一切考慮しないMMORPGを開発するとどうなるか

    どうもご無沙汰しております。Blogが私の年1回の生存報告、兼、アドベントカレンダー用と相成って久しいですが、今年も一発恒例行事として筆を取らせていただきたいと思います。 今年、私が話題に取り上げますのは、とあるゲームです。Amazon Game Studiosという会社が開発・リリースしました、New WorldというMMORPGについてご紹介させていただきたいのです。ゲームの話題には一切興味がない読者諸君も、どうか少し我慢して、私に騙されたと思って最後まで話を聞いていただけませんでしょうか。そもそも、あのAmazonが開発したMMORPGというのですから、どれほどゲームに興味がなくても、技術に興味のある方でしたら、少しは興味深く感じられるのではないでしょうか? けして後悔はさせませんよ。悪い方向にね。 さて、ゲームに何ら興味知識のない方にもわかるように少し解説を入れさせていただきます

    セキュリティを一切考慮しないMMORPGを開発するとどうなるか
    Nyoho
    Nyoho 2021/12/01
    ネトゲの開発
  • SwiftUI チュートリアル ヘルプ ドキュメント FAQ 困ったらとりあえずここ見ればOK

    https://github.com/Juanpe/About-SwiftUI いろいろ調べたのですが、これよりよくまとまっているドキュメントを現状発見できませんでしたので、2019/06/08現在では上記のドキュメントを参照するのがベストだと思います。 特に以下の記事は役立ち度が高かったです。この2つだけで問題の9割ぐらいは解決できると思います。 SwiftUI by Example https://www.hackingwithswift.com/quick-start/swiftui Answers to the most common questions about SwiftUI https://wwdcbysundell.com/2019/swiftui-common-questions/ あとは直接SwiftUI.frameworkの中身を見るのが良いと思います。正直Appl

    Nyoho
    Nyoho 2019/06/09
  • iOSのフォントのお話

    最近フォント周りについて深く掘り下げる機会がありましたので、その際のメモを残しておこうと思います。かなり読む人置いてけぼりな中身になってますが、フォントを詳しく触り始めるとなるほどーとためになる(と思う)のでどうかご了承ください(´・_・`) UIFontのプロパティについて UIFontにはフォントに関する数値を表すプロパティが存在します。いろいろありますが、もっとも重要なのは以下に列挙するプロパティです。 pointSize lineHeight ascender descender leading capHeight 以下の画像を見ると非常にわかりやすいかと思います。 参照元: https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/Cus

    iOSのフォントのお話
    Nyoho
    Nyoho 2016/09/13
  • レガシーな Objective-C プロジェクトを Swift なプロジェクトに変換する

    ここで言うレガシーなObjective-Cプロジェクトの定義とは iOS 7時代 (Xcode 5) より前に作成されたプロジェクトである Swiftのコードを一行も含んでいない IOS_DEPLOYMENT_TARGETが8.0よりも小さい (7.xをサポートしている) とします。 こんな由緒正しいiOSのプロジェクトを未だにメンテしている人もなかなかいないのかと思いますが、もしいらっしゃいましたらそんな方のためにSwiftプロジェクトに変換していく方法をメモしておきます。 ■前提条件 まずIOS_DEPLOYMENT_TARGETを8.0以上にしましょう。IOS_DEPLOYMENT_TARGETを8.0以上にすることでdynamic frameworkおよびclang moduleが使えるようになるため、Objective-CとSwiftの間の垣根が非常に低くなります。 ■ケース1

    レガシーな Objective-C プロジェクトを Swift なプロジェクトに変換する
  • Xcode 7.2 の LLDB で Swiftのデバッグをするコツ

    現在のXcode 7.2でSwiftを使ったiOSアプリのデバッグをするときのコツみたいなものをまとめました。将来的にはより良くなる可能性はあります。というか良くなってほしいです(´・_・`) ■LLDBbreakした地点によって挙動が変わるまずハマりどころがこれですが、現在のLLDBbreakした地点で実行されていたコードがSwiftのコードかC言語系のコードかによってモードが変わります。 // Objective-C mode (lldb) po [someObject property] // Swift mode (lldb) e someObject.property Objective-Cモードの時にSwiftっぽい呼び出しをしたり、その逆をしてもまともにLLDBは動作しません。なので現在自分がどちらのモードのLLDBにいるのかを判断するのがキモになります。 ハマりどころと

    Xcode 7.2 の LLDB で Swiftのデバッグをするコツ
    Nyoho
    Nyoho 2015/12/17
  • A-Liaison BLOG: AppBank GAMESを退職していました

    表題の件、私akisuteは2013年10月末日を持ちましてAppBank GAMES株式会社を退職したことをご報告いたします。短い間ではございましたが関係者皆様大変ありがとうございました。今後の予定につきましてはとりあえずのところ問題なくやっていけそうで助かっております。 ところで、せっかくの退職エントリですので感慨深いものですし、ここはひとつ昔話などをしたいと思います。 まずはAppBank GAMESの軌跡を年表にして振り返ってみました。 2012年2月 AppBank GAMESがスタートしました。2012年4月 最初の退職者が現れました。2012年夏 第一次反乱が発生しました。2012年7月 G君という大変優秀なレベルデザイナーがジョインしました。2012年10月 Dungeons and Golfの追い込み時期にとある出来事が発生しました。2012年12月3日 Dungeons

    A-Liaison BLOG: AppBank GAMESを退職していました
    Nyoho
    Nyoho 2015/10/19
    あらっakisute様は消してしまわれたの?
  • ReactiveCocoa を Swift から使ってみた(2) KVO編

    前回の記事から引き続き、ReactiveCocoaを触ったりしています。FRPの概念に慣れてくると通常のプログラミングスタイルでは得られない知見に遭遇出来てなかなか面白いです。 今回はまずSwiftReactiveCocoaを学ぶときに参考にするドキュメントについてご紹介したいと思います。といってもSwiftに特化したドキュメントはほとんど存在しないため、Objective-CでReactiveCocoaを学ぶときのドキュメントを見て学ぶしか無いのが現状です。 私は個人的にはサンプルコードを直接触るほうが性に合っているようなので、以下のオープンソースのReactiveCocoaで作られたアプリのコードを見ています。 https://github.com/AshFurrow/C-41 https://github.com/jspahrsummers/GroceryList GroceryL

    ReactiveCocoa を Swift から使ってみた(2) KVO編
  • Swiftプログラマ格付けチェック (2015新年スペシャル)

    今回一流のSwiftプログラマの皆さんに格付けチェックしていただくのはこちら! JSONライブラリ です! ひとつは日が誇る一流プログラマ、dankogai氏が作成されたJSONライブラリ、githubスター数312 ひとつは当ブログ管理人三流プログラマ、akisuteが適当にググって見つけたJSONライブラリ、スター数16 となっております。 皆様にはこの2つのうちからdankogai氏のライブラリを当てていただきます! Aのライブラリ Bのライブラリ (コメントはすべて削除しています) それでは正解だと思ったほうの部屋に入っていただきましょう! Aが正解だと思った人の部屋 Bが正解だと思った人の部屋

    Swiftプログラマ格付けチェック (2015新年スペシャル)
    Nyoho
    Nyoho 2015/01/01
    面白い
  • ReactiveCocoa を Swift から使ってみた

    FRP(Functional Reactive Programming)なるものが流行っているらしいので、私もたまには流行に乗っかってみることにしました。手始めにReactiveCocoaSwiftで一日ほど使ってみました。 導入こちらのブログにまとまっていますので、そちらを参照していただければ良いかと。基的にはCocoaPodsで一発です。 http://tnakamura.hatenablog.com/entry/2014/11/15/how_to_use_reactivecocoa_in_swift ドキュメント基的にはプロジェクトGitHubにしっかりドキュメントがあるのでそれを見ればだいたい大丈夫かなと思います。 https://github.com/ReactiveCocoa/ReactiveCocoa https://github.com/ReactiveCocoa/

    ReactiveCocoa を Swift から使ってみた
  • SwiftからCやObjective-Cのライブラリを扱うときのテクニック数点

    Objective-C Bridging Headerを利用することで、Swiftは既存のいかなるC/Objective-Cコードのシンボルでも呼び出すことが可能になっています。しかしながら場合によってはSwift単体では素直に書きづらいハマりどころがあります。C/Objective-Cのラッパーを作り、Objective-C Bridging Header経由でSwiftから呼び出せば全ての問題は解決できるのですが、面倒くさいですしやはりSwift単体で何とかしたいですよね。そこでここでは素直に書きづらいハマりどころと、それを何とかしてSwift単体で解決する方法をご紹介します。 ※以下の情報は2014/12/19現在のものです。Swiftは言語仕様の変化が激しいので予期せず変更されている場合があります、ご了承ください。

    SwiftからCやObjective-Cのライブラリを扱うときのテクニック数点
  • Swift から Core Data を操作するときはこの2点だけ気をつけよう (Xcode 6 beta 7編)

    将来的にXcode側の対応が変わる可能性が極めて高いので暫定ですが、Xcode 6 beta 7でSwiftからCore Dataを触った時に注意するポイント2点まとめです。この2点にだけ気をつければSwiftでもCore Dataは案外あっさり動きますのでご安心ください! 1. プロパティの設定の仕方 @NSManagedを使うこと Int, BoolではなくNSNumberを使うこと。StringはStringでOK Many関連にはNSSetを指定すること 2. entityNameの与え方 コード上ではクラス名だけを与える Model Editor上ではモジュール名.クラス名(完全修飾名)を与える

    Swift から Core Data を操作するときはこの2点だけ気をつけよう (Xcode 6 beta 7編)
    Nyoho
    Nyoho 2014/09/11
  • Unity の PostprocessBuildPlayer を Ruby で書いてみる(第二版)

    UnityでiOSのアプリを作っていて困ることの一つに、iOSが提供するシステムフレームワークへのリンクをプロジェクトに追加するのが超面倒くさいという問題が挙げられます。UnityがiOSアプリを書きだした後、手動でXcode上からシステムフレームワークを追加してもいいのですが、これはとんでもなく面倒です。というわけで、以前こちらの記事でRubyのxcodeprojモジュールを利用して自動的にシステムフレームワークを追加する方法をご紹介しました。 システムフレームワークへのリンクをプロジェクトに追加する dylib, framework両方に対応 required, optional両方に対応 空のinfo.plistをプロジェクトに追加する ja, enに対応 Unity 3時代に空のinfo.plistを追加しないとiOSが提供するUI英語で表示される問題が合ったため追加 Unity

    Unity の PostprocessBuildPlayer を Ruby で書いてみる(第二版)
  • Swift で __conversion メソッドを使ってカスタムの型変換を定義する方法

    2014/10/21追記: Xcode 6.0 beta 6以降、__conversion()を使った暗黙的なas演算子を用いた型変換はサポートされていません。Xcode 6.1(Swift 1.1)現在、暗黙的な型変換を行う手段はないため、型変換を行いたい場合はイニシャライザを定義する方法を取るのが通例として良いと思います。 class 変換対象の型 { init(_ obj: 変換元の型:) -> 変換対象の型 { return 適当に変換対象の型を返す } } Swiftではas演算子を使ったり、型の定義されている変数・定数へ代入したり、メソッド呼び出しの引数にオブジェクトを渡す際に型変換が行われますが、デフォルトでは対応していない型変換があったりします。例えばStringはasを使ってもIntに変換することはできません。 また、SwiftではnilはNilTypeという型のシングル

    Swift で __conversion メソッドを使ってカスタムの型変換を定義する方法
  • Objective-🍣

    全く新しい、真にユニバーサルな言語へ。 皆さんiOS開発の際にお世話になっているObjective-Cですが、一部の開発者の方々から以下の様な否定的な意見をいただくことがあります。 とっつきにくい 文法がキモい @や[]がキモい シグネチャが無駄に長い Apple製品でしか使えない 確かにObjective-Cは習熟すればこれらの欠点を補って余りある素晴らしい言語ですが、これからの更なるモバイルアプリの世界の拡充のためにはより一層多くの開発者に愛される言語になる必要があると私は考えました。 そこでこの度ご紹介するのがObjective-Cをさらに使いやすく、さらに親しまれるように、全く新しく一から作りなおした新言語 です! Objective-🍣とは以下の様な特徴を持つ言語です! 驚異的に短く、真にユニバーサルな、洗練された文法を持ちます。これまでのプログラミング言語は基的に英語による

    Objective-🍣
    Nyoho
    Nyoho 2014/04/01
    「オブジェクティブ・スシー」www
  • iOS SDK 7.1 / Xcode 5.1にアップグレードした時に踏んだ地雷まとめ

    日iOS SDK 7.1 / Xcode 5.1にアップグレードを行った際にぶつかった所々の問題とTipsをまとめておきたいと思います。 arm64対応とCocoaPods Xcode 5.1からデフォルトのビルド設定$(ARCHS_STANDARD_32_BIT)がarm64、要するに64bit対応を含むようになり、arm64 armv7 armv7sの3つのアーキテクチャに対してビルドを行うようになりました。ソースコードからビルドを行っている場合は大抵問題ないと思うのですが、以下の様なケースでarm64対応を切りたい場合があります。 プロジェクト内にarm64アーキテクチャに対応していないstaticライブラリが含まれている場合。 64bitになると危険なバグが発生するおそれがあるコードが含まれている場合、例えばCGFloatやNSIntegerのサイズが変化したり、各種ポインタのサ

  • Google Analytics for iOS SDK バージョン3で自動セッションマネージメントをするライブラリを書きました

    Google Analytics for iOS SDK バージョン3で自動セッションマネージメントをするライブラリを書きました Google Analytics for iOS SDK バージョン3にちょっとした機能を追加するライブラリを書いてみましたので公開いたします。 https://github.com/akisute/GAI-AutomaticSessionManagement iOS 5.0以上で動作します。MITライセンスです。 ■これは何? Google Analytics for iOSは皆さんご存知の通りiOSアプリのセッション解析を行ってくれるSDKです。WebのGoogle Analyticsと同様に、ユーザーさんがどれぐらい、どのように自分のアプリを使ってくれているのかを調査することができます。 そんな便利なGoogle Analyticsなのですが、iOS向けの

    Nyoho
    Nyoho 2014/02/24
    便利そうですね!
  • ユビレジを支える技術

    年末にユビレジさんのところでちょっと仕事のお手伝いをさせていただいたので、その時の内容をご紹介させていただきます。 ■ユビレジって何? iPadをキャッシュレジスタに変えてしまうサービスです。会計からレシートの印刷までやってくれます。最近飲店などでレジがなくiPadだけが置いてあるお店などを散見するかと思いますが、アレがそうです。一般的なキャッシュレジスタ+店舗システムよりもはるかに安価で導入でき、しかも使いやすいというのがウリです。 開発者的に言うと、Scalaモヒカンの@kmizuさんやiOSモヒカンの@k_katsumiさんなどが在籍されていまして、エンジニアのレベルが高いです。 ■開発スタイル 少人数のため、厳密なウォーターフォール管理やアジャイル/スクラムなどは無く、チケット/Issueベースの開発になっています。githubをフル活用します。すべてPull Request(以

    ユビレジを支える技術
  • 【誰得】ncursesをiOS 7向けにビルドしてみた

    久々のブログ投稿がこんな内容でほんとすみません。 ややタイトル出落ち感がありますが、ncursesをiOS向けにビルドしてみました。環境は以下のとおりです。 OS X 10.8.5 (Mountain Lion) Xcode 5.0 & iOS SDK 7.0 ncurses-5.9 TerminalにはOS X付属のTerminal.appを使用 ※注意: 当に使えるかどうかまでは試してません。ちょっと根性が足りませんでした。あくまでiOS向けにC/C++で書かれたライブラリをビルドして使えるようにするときの参考になったりならなかったり程度でお考えください。 というわけで、まずはncursesのソースコードをhttp://ftp.gnu.org/gnu/ncurses/あたりからサクッと拾ってきます。今回はncurses-5.9を使用しましたがどのバージョンでも大して変わらないと思いま

    【誰得】ncursesをiOS 7向けにビルドしてみた
    Nyoho
    Nyoho 2013/11/11
    誰得www
  • 「モバイルアプリのバックエンド(Web API)に特化したサービスのまとめ」のその後(2013年版)

    1年ほど前にモバイルアプリのバックエンド(Web API)に特化したサービスのまとめというBaaSサービスについて非常に丁寧にまとめた記事が公開されていたのをつい最近知ったのですが、公開から1年が経ちBaaSサービス周りも統合再編が起きているようなので誠に勝手ながら2013年版を引き継いて書いてみようかと思います。 まずBaaSについて基的なところはlaisoさんの元記事が素晴らしく良くまとめてくださっていますのでそちらを参照してください。 2013/05/16追記: こちらのSlideshareにも2013年現在のBaaSサービスを取り巻く状況が非常に丁寧にまとめられていますので、オススメです。 2013年のトレンド まずは元記事で上がっていたBaaSサービスの名前を片っ端からGoogleトレンドに突っ込んでみて人気度を評価してみました。その他、2013年になって登場してきたサービスが

    「モバイルアプリのバックエンド(Web API)に特化したサービスのまとめ」のその後(2013年版)
    Nyoho
    Nyoho 2013/05/15
    こんなにいろいろあるんだなー
  • エンジニアサポートCROSS 2013で発表してきました

    先日ニフティさんが主催されたエンジニアサポートCROSS 2013におじゃまさせていただきました。このエンジニアサポートCROSSは年に1回、去年から開催されているらしいのですが、なんといっても大手企業さんが主催ということで参加者がとにかく豪華 プレモル飲み放題ケンタッキーべ放題という夢の様な環境 それでいてきちんとWeb系/Make系コミュニティのギークっぽい雰囲気のカンファレンスになっている、スーツではない という独自の魅力があるカンファレンスになっていました。 で、このエンジニアサポートCROSSにはアンカンファレンス枠があって、参加者が自由気軽にその場でプレゼンを行う事ができる場がありましたので、せっかくだからということで私も発表させて頂きました。

    Nyoho
    Nyoho 2013/01/22
    ゴルフのゲームのサーバ構築の話