Category Note

Swift: Bridging-Header 作成・設定方法(Xcode 7.2 対応)

現在は Swift が主流となってきましたが、まだまだ Objective-C で書かれたコードも健在で、Swift 上で Objective-C コードのライブラリ等を使用する場合、Bridging Header ファイルを作成する必要があります。 Bridging Header の作成自体は簡単ですが、Xcode での設定の方法をいつも忘れてしまうので、今回は Bridging Header に関する一通りの作成、設定の流れをメモしておきます。 目次 Bridging Header ファイル作成 Xcode の設定 まとめ Bridging Header ファイル作成 Xcode メニューから File -> New -> File を選択します。 Header File を選択します。 ファイル名は任意となりますが、ここでは Bridging-Header.h とし、Create でヘッダーファイルの作成は完了です。 ファイルの中は以下のようになります。 Bridging-Header.h コメントアウトがある部分に、使用する Objective-C ライブラリ等のヘッダーファイルをインポートすれば Bridging Header の作成は完了です。 次項ではこの Bridging Header が使用できるように Xcode の設定をしていきます。 Xcode の設定 TARGETS -> Build Settings を選択します。 Swift Compiler – Code Generation の Objective-C Bridging Header を探します。 Resolved のとなりの空欄をダブルクリックし、以下をコピペします。作成したヘッダーファイル名が Bridging-Header.h 以外の場合はファイル名を書き換えてください。 $(SRCROOT)/$(PRODUCT) の部分は Xcode が自動的にフルパスに変換してくれます。 以上で設定は完了です。 まとめ コードの記述はともかく、ここら辺の単純な設定をいつも忘れてしまうのは自分だけでしょうか。 アプリの開発規模によっては、ビジネスロジックに専念できるまでの工程が多くなってしまうのは仕方のないことですが、ものぐさな自分からすると、今回の場合では Objective-C ファイルをプロジェクトにドラッグコピーするだけで、Swift からアクセス可能になれば便利なのにと思いました。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Terminal: zshプロンプトのカスタマイズ(git 対応)

日常は GUI でほとんどのオペレーションを行ってますが、アプリ開発時のバージョン管理は、CUI の方が学習コストも低く扱いやすいので、GUI と CUI を行ったり来たりしながら作業を行っています。 今回、zsh のプロンプトに Git ブランチを表示したかったので、そのカスタマイズ方法をメモしておきます。 目次 zsh プロンプト概要 zsh プロンプトに Git の情報を表示する まとめ zsh プロンプト概要 はじめに zsh のプロンプトを変更するため、ホーム直下にある .zshrc ファイルを開きます。 この .zshrc ファイルで以下のようなプロンプトの定義(各パラメータの詳細は後述)を行います。PROMPT は画面左端、RPROMPT は画面右端に出力されるプロンプト変数です。 .zshrc .zshrc を変更・保存した後にはターミナルで source ~/.zshrc コマンドを実行し、ソースファイルをリロードします。 ターミナル 結果 色の変更 最初に、カラー変更を行うため、colors を呼び出しておきます。 .zshrc %{$fg[色番号]%} と %{$reset_color%} で囲まれた部分に「色番号(名称)」のカラーが適用されます。 .zshrc 今回の PROMPT の例では [%n@%m] を「red(赤)」で表示する、と言う意味になります。 また、$fg (ForeGround)の部分を $bg (BackGround) とすることで、背景色を変更することも可能です。 .zshrc プロンプトで使用できる色は以下の通りです。 色の番号・名称・サンプル一覧 番号 名称 サンプル 0 black 1 red 2 green 3 yellow 4 blue 5 magenta 6 cyan 7 white パラメータの詳細 PROMPT(RPROMPT) に記載する各パラメータ詳細は以下のようになっています。 この中から表示したい項目を選びプロンプトをカスタマイズします。 パラメータ内容サンプル %Mホスト名localhost.localdomain %mホスト名localhost %nユーザ名root %#ユーザ種別#(root)% (root以外) %yログイン端末名pts/0 %lログイン端末名pst/0 (tty*の場合はtty省略) %?直前のコマンドの戻り値0 %h %!コマンド実行 (history) 数1 %d %/カレントディレクトリ/root/currentdir %~カレントディレクトリ~/currentdir %Cカレントディレクトリcurrentdir %c %.カレントディレクトリcurrentdir ($HOMEは~) %D日付16-03-07 書式)yy-mm-dd %W日付03/07/16 書式)mm/dd/yy %w日付Mon 07 書式)day dd %*時間01:23:45 書式)hh:mm:ss %T時間01:23 書式)hh:mm %t %@時間01:23PM 書式)hh:mm(am/pm format) zsh プロンプト概要まとめ 「%」や {} が連続しているため、何かの呪文のように見えてしまい抵抗があると思いますが、中身はとても単純です。 これらを踏まえ、次項でこのプロンプトに Git の情報を表示させたいと思います。 zsh プロンプトに Git の情報を表示する はじめに zsh のプロンプトに Git の情報を表示するためには、zsh 4.3.10 以上である事が必須となるので、ターミナル上から zsh のバージョンを確認しておきます。 zsh のバージョンを確認(ターミナル) vcs_info の宣言と設定 バージョン管理システムから情報を自動的に取得するために vcs_info を宣言します。 .zshrc 次に、vcs_info から取得した情報をカスタマイズします。各項目の詳細はソースのコメントを参考にしてください。 .zshrc プロンプト表示直前に上記で設定した vcs_info を呼び出します。 .zshrc これでで ${vcs_info_msg_0_} に先ほど zstyle で設定したメッセージが表示されます。 今回はデフォルトのプロンプトを [ユーザー名@ホスト名] とし、git の管理下に移動した際にデフォルトのプロンプトの後にブランチ名を表示したいと思います。 以上で git の管理下のフォルダに移動した際のプロンプトは [ユーザー名@ホスト名](ブランチ名) $ が表示されるようになり、 通常時 (ブランチ名) が「シアン」で表示 add されていないファイルがある場合 +(ブランチ名) が「マゼンタ」で表示 commit されていないファイルがある !(ブランチ名) が「グリーン」で表示 と状態によってプロンプトの表示が切り替わるようになります。 結果 zsh プロンプトに Git の情報を表示するまとめ 最後に今回の設定をまとめた .zshrc サンプルコードを掲載しておきます。 まとめ 普段使っているターミナルのプロンプトをカスタマイズするだけで、無機質な CUI がかわいく見えてきたりします。 黒い画面が苦手な方も、プロンプトのカスタマイズはとても簡単ですので、自分好みのカラーに変えてみたり日付や時刻を表示して楽しんでみてください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Apple: もうすぐ発表!iPhoneSE と 新しい iPad について

3月21日(日本時間22日)のイベントで iPhoneSE と 新しい iPad が発表されるみたいです。 今回のイベントは小規模な製品発表会となるため、WWDC のようなお祭り騒ぎにはならないですが、この発表会の翌日22日に Apple は iPhone のロック解除問題 をめぐって、FBI と法廷での弁論が行われるみたいで、その景気付けの一端を担っているものと思われます。 Apple は Touch ID や Apple Pay もすでに実現しているため、相手が誰であれこれまで通りの強硬姿勢を貫くのではないでしょうか。 今回は iPhoneSE に少し触れ、自分に関係あるであろう 新しい iPad についてのリーク情報をまとめてみたいと思います。 目次 iPhoneSE 概要 新しい iPad 概要 iPad Air 2 との比較 まとめ iPhoneSE 概要 以前リークのあった情報では iPhone 5se という名称だったようですが、見た目は iPhone 6 の 4インチディスプレイ版であるにも関わらず、5se ではユーザーに誤解を招く表現とのことで iPhoneSE (Special Edition) となるようです。 予想スペック A9チップ搭載 カメラ機能向上(解像度向上とLivePhoto機能実装) iPhone 6 と同様の外観 iPhone 5s と同様の価格 16GB/64GB モデル iPhoneSE 概要まとめ iPhoneSE は小さい iPhone への回帰ではなく、昨今の iPhone 大型化を理由に買い渋っているユーザーのリカバリーを行うためのプロダクトだと思われます。 新しい iPad 概要 予想スペック 背面カメラにLEDフラッシュ搭載 4 スピーカー Smart Connector 搭載 サイズ:240 x 169.6 x 6.15mm Apple Pencil 対応 LEDフラッシュ iPad で静止画・動画撮影を行わないので、ありがたみが今ひとつ分かりませんが、ないよりはあった方がいいかな?と思われる変更点だと思います。 4 スピーカー iPad Pro で羨ましく思えることの一つが、このスピーカーの数でした。 iPad で映像コンテンツを再生する際、ランドスケープ(横位置)となるのが一般的かと思います。 この状態では iPad のスピーカーはステレオであるにも関わらず、2つのスピーカーが左右のどちらかに偏るため、音場に広がりがないものとなってしまいます。 また、たまに横になりながら iPad をランドスケープ固定にし、ポートレイト(縦位置)で映画を見たりするのですが、固定した方向によってはスピーカーが地面に接地し音の出口がふさがるため、音が聞こえにくくなる問題がありますが、この問題も 4スピーカーなら解決します。 iPad でテレビや映画を見る方にとっては、ニーズのあるアップデートだと思います。 Smart Connector 12.9 インチの iPad Pro 専用に作られたスマートキーボードを、9.7インチの iPad で使用するには見た目に無理があります。 新しい iPad に Smart Connector が搭載される以上、おそらく新しい iPad 専用の 9.7インチスマートキーボードも同時に発表されると思われますが、9.7インチに収めたキー配列が果たして使いやすいのかどうかが気になるところです。 サイズ サイズに関しては 幅が0.1mm、厚さが0.05mm 大きくなる ようですが、この差を気にする方はまずいないと思います。大きくなる原因は、Apple Pencil に対応するためのディスプレイ構造によるものと思われます。 Apple Pencil 9.7インチの iPad に対し、スタイラスははっきり言って必要ないとわかりきっている反面、一番 楽しみな体験 がこの Apple Pencil である iPad ユーザーも多いのではないでしょうか。メモ帳を試してみるだけで終わる気もしますが。。 新しい iPad 概要まとめ 新しい iPad については当初 iPad Air 3 と呼ばれていましたが、新しい iPad のスペックを見る限り、この名称は適切ではありません。 ここからは個人的な予想となってしまいますが、MacBook Air が MacBook となっていること、iPhone 5se と呼ばれていたものが、現時点で iPhoneSE と噂されている経緯を考慮すると、新しい iPad の名称は iPad となり、iPad のラインナップから iPad Air はいずれなくなり、iPad Pro、iPad、iPad mini となるのが自然です。 次項では現行の iPad Air 2 と比較してみたいと思います。 iPad Air 2 との比較  新しいiPad(予想)iPad Air 2 サイズ240 x 169.6 x 6.15mm240 x 169.5 x 6.1mm… 続きを読む

Android: スクリーンショットの撮り方

日常では iOS デバイスをメインで使っているので、Android の基本操作はよくわかりません。 そんな Android も開発時にはお世話になるため、Android ユーザーであれば当たり前のような操作も、当たり前に出来なかったりします。 今回はそんな当たり前の Android デバイスでスクリーンショットを撮る方法のメモとなります。 Android: スクリーンショットの撮り方 デバイスの 「ボリューム(小)」+「電源ボタン」を 同時に長押し でスクリーンショットの撮影ができます。 まとめ Apple の iPhone や iPad と違って、Android デバイスは、単独1社が製造しているものではないので、デバイス自体に性能の違いや、製造メーカーごとの細かな仕様・特徴があるため、デバイスの使用感にバラつきがあります。 スクリーンショットの撮影自体は、Android OS の仕様にそった操作方法なので、ここで説明した操作方法しか達成手段はありませんが、今回スクリーンショット撮影を様々な Android デバイスで検証した際、ボタンの位置、押す感覚、長押しのタイミングや時間には、多少バラつきがあるように感じました。 秀逸なユーザビリティ・ユーザーエクスペリエンスは、小さな要素が絶妙に絡み合うことで実現していることをあらためて実感しました。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。
eyecatch_image

Developer: iOS Certificates 作成手順(2016年最新版)

毎年この時期になると Apple Developer 証明書関連の更新が必要になってきます。 iOS アプリ開発者なら、最低でも年に1度は必ず行わなければならない作業なので、今回はよりシンプルに分かりやすく説明したいと思います。 目次 Certificates 作成の準備(ローカル) Certificates 作成の手順(リモート) まとめ Certificates 作成の準備(ローカル) キーチェーンアクセスの起動 アプリケーション -> ユーティリティ -> キーチェーンアクセス.app を起動 キーチェーンアクセス キーチェーンアクセス(メニュー) -> 環境設定 キーチェーンアクセスの環境設定 証明書のタブを選択 オンライン証明書状況プロトコル (OCSP): 切 証明書失効リスト (CRL): 切 設定を確認したら次の手順へ。 認証局に証明書を要求 キーチェーンアクセス(メニュー) -> 証明書アシスタント -> 認証局に証明書を要求 証明書アシスタント ユーザーのメールアドレス: 開発者のメールアドレス 通称: 適当な名前 CAのメールアドレス: 無記入 要求の処理: ディスクに保存 と 鍵ペア情報を指定 にチェック CertificateSigningRequest.certSigningRequest を任意の場所(ここではデスクトップ)に保存するように指定 鍵ペア情報は以下のように設定します。 鍵のサイズ: 2084ビット アルゴリズム: RSA 続ける -> CertificateSigningRequest.certSigningRequest がデスクトップに保存される。 Certificates 作成の手順(リモート) Apple Developer Apple Developer -> Certificates Identifiers & Profiles にアクセス Developer アカウントでログインします。 Certificates Identifiers & Profiles を選択。 ここでは iOS Apps の Certificates を選択。 Certificates Identifiers & Profiles Certificates(左カラムメニュー) -> All -> 「+」(右カラム) Add iOS Certificate iOS App Development(開発用) か App Store and Ad Hoc(製品用) のどちらかを選択。 Continue をクリック。 Chose File からデスクトップに作成された CertificateSigningRequest.certSigningRequest を選択。 Generate をクリックし、生成された CSR(証明書)ファイルを確認し Download をクリック。 開発用の場合 ios_development.cer 製品用の場合 ios_production.cer がダウンロードされる。 キーチェーンアクセスに登録 上記のダウンロードされた CSR ファイルを ダブルクリック で キーチェーンアクセス に登録される。 まとめ iOSアプリ証明書関連の作業は何度もやっていると、確認する程度で工程を思い出しますが、初めての方だと何をやっているのか分からない作業だと思います。 ここに書いてある通り進めれば一瞬で完了しますので、煩わしい作業は早く済ませてその先の開発を楽しみましょう。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Node.js: シェルコマンドを実行する

前回は Node.js を使ってファイルを操作する一覧をご紹介しました。 ファイルの操作ができると、それだけで色々と出来ることが増えていきます。簡単に色々とやれてしまうのが Node.js のいいところです。 今回は Node.js を使ってシェルコマンドを実行する方法を説明したいと思います。 目次 Node.js でシェルコマンドを実行する まとめ Node.js でシェルコマンドを実行する サンプル shellHelper.js shellHelper.js を使用すれば複数行のシェルコマンドも簡単に実行できます。 まとめ Node.js は非同期型のイベント駆動モデルを使用したサーバサイド環境ですので、同期的にシェルコマンドを実行する場合には、ある程度の工夫が必要です。 とは言っても、ちょっとファイル操作して、その後コマンドを叩く程度であればそこまで頑張る必要もありません。 ES6 も浸透してきたので、今後は JavaScript に関しても記事を投稿していこうと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

CSS: リンク擬似クラス :link, :visited, :hover, :active の記述順

CSS の記述順が間違っているため、リンクタグ擬似クラスが効いていない時があります。 リンクテキストのカラーならサイトの動作に問題がないため、ついついそのまま放置してしまうケースもあるかと思いますが、あまりよろしくはありません。ちゃんと直しましょう。 今回はこの CSS 記述順をいつも忘れるのでメモしておきます。 目次 リンクタグの擬似クラス :link, :visited, :hover, :active 記述順 まとめ リンク擬似クラス :link, :visited, :hover, :active の記述順 記事のタイトルそのままですが、:link -> :visited -> :hover -> :active の順に記述します。 サンプル CSS 覚え方 擬似クラスの頭文字をとって lvha -> l(o)v(e) & h(over)a(ctive)te -> love & hateと覚えます。多少無理矢理な感じがしますが、それでもないよりはマシかと思います。 まとめ 覚え方は love & hate でしたが、この love & hate を忘れてしまっていました。 CSS の継承とリンクタグの性質をしっかり理解していれば、こう言った試験前の一夜漬けのような覚え方をしなくても自然と書けるはずなのですが、一度記事にしましたので、もう忘れることはないと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Node.js: よく使うファイル操作の一覧

Node.js はローカルでのちょっとした作業も、シンプルな記述で実行できるのでとても便利です。 ファイルの操作も簡単に実行できてしまうので、うまく利用すれば日々のルーチンワークを半自動化することも可能です。 今回は Node.js でよく使用するファイル操作をまとめて一覧にしました。 目次 ファイルを読み込む ファイルを保存する ファイルをコピーする ファイルを削除する まとめ ファイルを読み込む readFile() readFileSync() ファイルを保存する writeFile() ファイルをコピーする createReadStream().pipe() ファイルを削除する unlink() フォルダ削除 フォルダを内包するフォルダ・ファイルごとに削除するためには、パッケージ管理ツール npm から rmdir をインストールします。 rmdir インストール 使用例 まとめ Node.js を使って自分専用のユニークなツールを作っていると、いつの間にかアプリに近いものになってしまっている楽しさがあります。 今のところ、面倒なローカルでの処理をワンライナーで実行する目的で使用していますが、そのうちがっつりとアプリを作ってみたいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

OSX: Mac (El Capitan ) で SSD の TRIM を有効にする方法

Mac のストレージを 社外 SSD に換装した場合、TRIM サポート が いいえ (OFF) となっています。 今回は、この TRIM についての概要と、確認方法、有効にする方法を説明したいと思います。 目次 TRIM とは TRIM の確認方法 trimforce の実行 TRIM とは SSD のパフォーマンス低下を防ぐ機能のことです。 SSD で使用されている NAND フラッシュメモリーは上書きできないという性質があります。 そのため、すでにデータの存在する領域へ新しくデータを上書きするためには、既存のデータを読み出し、一旦違う領域にコピーし書き込み領域を消去した後、コピーしたデータへ書き換える必要があります。 TRIM とは、OS が事前に削除可能な領域を SSD へ通知することにより、あらかじめ SSD が削除を実行し、書き込み可能領域を確保しておくことで、データアクセスのパフォーマンス低下を防ぐための機能です。 TRIM の確認方法 このMacについて -> システムレポート -> ハードウェア -> SATA/SATA Express より SSD ストレージを選択します。 デフォルトでは TRIM サポート が いいえ となっています。 trimforce の実行 アプリケーションから ターミナル.app を起動し、以下のコマンドを実行します。 コマンド実行後、システムレポートを確認すると、TRIM サポートが はい になっています。 まとめ TRIM を有効化することで、データアクセスが少し速くなった気がしますが、HDD から SSD へ換装しただけで相当速くなっているため、SSD の使用容量が半分を超えたあたりから TRIM の効果が実感できるのかもしれません。 最後に、今回の TRIM 有効化の作業はとても簡単なものですが、リスクが伴いますので、あらかじめデータのバックアップを取った上で、自己責任で実行してください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Developer: App Store ガイドライン 2.12 に抵触しない Web ラップ型 アプリについて

WebView アプリで既存 Web サイトをラップした iOS アプリのストアレビュー時に、 App Store ガイドライン 2.12 でリジェクトされた経験をされた方は少なからずいることと思います。 先日、開発案件でこのリジェクトに遭遇しましたが、無事アプリをリリース出来ましたので、その時の解決方法を残しておきたいと思います。 目次 App Store ガイドライン 2.12 詳細内容 App Store ガイドライン 2.12 対策ロードマップ App Store ガイドライン 2.12 対策詳細 まとめ App Store ガイドライン 2.12 詳細内容 Apple Store ガイドライン 2.12の内容は以下の通りです。 ユニークではない、あまり有用でない、単にウェブサイトをバンドルしたもの、永続する娯楽価値を提供しないアプリケーションはリジェクトされます 自分の制作したアプリが あまり有用でない と言われるとショックですが、Web アプリを制作しリジェクトとなった場合の本題は、次の 単にウェブサイトをバンドルしたもの の一言に尽きると思います。 この事は開発者泣かせではありますが、単にウェブサイトをバンドルしたもの は Web ブラウザでサイトを閲覧すればいいだけなのですから、わざわざアプリ化する意味がなく、結局 App Store ガイドラインの あまり有用でない という表現は正しいことになります。 しかし、諸事情によりこういった あまり有用でない Web アプリをリリースしなければならない場合、どうすればいいのでしょうか。 次項からその解決方法を説明したいと思います。 App Store ガイドライン 2.12 対策ロードマップ 単にウェブサイトをバンドルしただけのアプリを申請し、その結果 2.12 リジェクトとなったときに立てた対策ロードマップは以下のとおりです。 プッシュ通知を実装 Apple レビュワーへの問い合わせ 独自メニューと共有機能を実装 設定画面を実装 コンテンツ表示の UITableView 化 App Store ガイドライン 2.12 対策詳細 プッシュ通知を実装 プッシュ通知はアプリ固有の機能です。Web サイトをラップするだけのアプリでも、サイトの更新やサービスのアップデートは必ず発生するので、これら更新情報を配信する機能をアプリに持たせることで、2.12 のリジェクトに対し一定の効果があります。 ただし、これだけでは あまり有用でない ことが理由でリジェクトとなりました。しかしこの時点で 単にウェブサイトをバンドルしたもの ではなくなりました。 Apple レビュワーへの問い合わせ プッシュ通知だけではリジェクトとなる可能性は十分考えられていたのですが、念のため、「なぜ、アプリ固有の機能であるプッシュ通知を実装したにも関わらず、 2.12 に抵触したのか」という問い合わせを行いました。 この問い合わせは、なぜダメだったのかを知るためではなく、どうすればリジェクトにならないか、をレビュワーに提案してもらうことが目的でした。 このアクションを早めに行うことで、レビュワーに従ってアプリを改善した結果が再びリジェクトとなった場合、訴求することが可能となります。 独自メニューと共有機能を実装 アプリの画面が WebView だけではブラウザそのものなので、アプリ専用メニュー として新しく View を作成し、そこに「進む」「戻る」「共有」と言った機能を追加します。比較的短時間で実装可能なうえ、リジェクトに対し一定の効果があると思いますが、この程度ではリジェクトとなりました。 設定画面を実装 アプリの画面数が1画面だけでは、やはりブラウザと大差がありません。そこでアプリに設定画面の UIViewController を追加 し、上記アプリ専用メニューから設定パネルへ遷移するボタンを追加し、2画面構成 とします。 設定画面では、「プッシュ通知のON/OFF」「サポートページ」「アプリを評価する」「カラースキーム変更」といった、最小リソースで実装が可能な機能を追加します。 このことが アプリを改善した結果 と評価されリリースとなりました。 コンテンツ表示の UITableView 化 Web コンテンツを一旦 CoreData に保存し、UITableView で表示することにより iOS ネイティブ特有の表現を行うためのプランでしたが、設定画面を実装することでアプリがリリースとなったため不必要となりました。 ここまでやれば、もはや 単にウェブサイトをバンドルしただけ のアプリではなくなりますが、この工程は工数が大幅に増大するため、あくまで最終手段として考えていました。 まとめ この記事を書いた目的は、こうすれば Web をラップしただけのアプリを開発したい場合、こうすればリリースできる、といったことが言いたかったのではありません。 Web サービスをアプリ化しようとする企画段階で、明らかにガイドライン 2.12 に抵触する恐れのあるアプリである場合、アプリ自体の開発を断念し Web サービスそのものの強化や見直し、リーチの拡大に注力するのが賢明だと言うことです。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから