Category Note

WordPress:ショートコード内の記号をエスケープする

ショートコードの中ででエスケープコードを使用せずに、表示が崩れていることに気づかないまま公開してしまう事もあるかと思います。 今回紹介するエスケープ方法は、プラグインを使用せずショートコード用のタグを追加することで、タグ内で自動的にタブを「半角スペース」にし、「<」や「>」をそのまま表示させることが出来るのでとても便利です。 ショートコードの記号をエスケープする functions.phpに以下の関数を追加する。 functions.php ショートコード部分を【code】【/code】で挟み込む(【】は半角の大括弧にして下さい) HTML まとめ WordPressのショートコード用プラグインをなるべく使用したくない方にとっては、このエスケープの方法はオススメです。

Apple:WWDC2013よりMacOS X Mavericks,Mac Pro,iOS7.0の感想

日本時間の6月11日深夜2時より、注目のWWDC2013が始まりました。 テレビはすっかり見なくなりましたが、Apple関連のストリーミングはいつも視聴しています。 今回のWWDC2013の気になった要点をピックアップしました。

C++:クラスの概要(1)> コンストラクタ関数とデストラクタ関数について

C++において重要なクラスについてのメモ。 更新履歴 [2013.07.18] MacOS X ターミナルでのコンパイルのコマンドを追加しました。 [2013.07.17] コードの誤りを修正し、インデントのルールを変更しました。 [2013.07.16] アクセス指定子と範囲についての説明を追加しました。 C++のクラスについて コンストラクタ関数とデストラクタ関数 クラスにはインスタンス生成時に1度だけ実行されるコンストラクタと、インスタンスが削除されるときに実行されるデストラクタが定義できる。 クラス・インターフェースのアクセス指定子と範囲 アクセス指定子説明 なしクラス内から使用可能(privateと同じ) public外部のクラスから使用可能

iPhone App:SmartScope 制作ノート(1)> アプリ制作の動機

今回から何回かに分けて、以前から話していたSmartScopeに関しての制作の裏側を公開していこうと思います。 アプリ制作の動機 まず最初に、そもそも何故iPhoneアプリを作ろうと思ったのかですが、深い意味はありません。ただ作りたかっただけです(笑) ただ作りたかったといっても、作りたくなるにはやはりそれなりの理由はあるはずで、それは多分、与えられたものを楽しむだけでは満足出来なくなったからだと思います。 Appleが好きな理由 Appleは製品を楽しんでもらうユーザーと同等、それ以上に開発者のことを考えながらビジネスを構築しています。 Appleビジネスの本質は、通常なら外注に出して終わり、サードに作らせて終わり、の部分を個人開発者にまで間口を広げることで、ユーザーニーズの多様性をカバーし、その権利関係を掌握することで、自社プロダクトとのシナジー効果によりマネタイズするというものです。 どこの企業でもこういったアイデアは、一度は提案されるはずです。しかし、実現に向けた工程を検討していくうちに、それが想像以上に困難な道であることを知り、プロジェクトは頓挫し、結局これまでと変わらないビジネスモデルを、2次元上でのマトリクスで拡張していき、手堅く儲けることに落ち着いてしまうのです。 それをやってのけるAppleが好きなのです。それをリアルタイムで見て来ました。 初めてのMac 私が初めて買ったAppleは、パフォーマというAppleの暗黒時代の最低のプロダクトでした。 それでも初めてのMacでPhotoshopやIllustratorを使って作品を制作し、プリンタから出力された、今考えると恥ずかしくなるような結果をみてワクワクしたものです。 そんな自分にとって、特別な存在だったAppleが用意した箱庭(App Store)で、自分の作ったものが、国境や人種を問わず楽しんでもらえる環境が、すでに現実のものとなっているのです。 やるしかないでしょ。いますぐ(笑) まとめ というわけで、こんなアプリがあれば便利、だとか、これは楽しいアプリだ、といった明確なコンセプトはなく、ただ作ってみたいという気持ちだけで出来上がったのがSmartScopeというわけです。 それでも、いざアプリを作るとなれば、さすがに熱い気持ちだけでは作れません。全くツブしのきかないObjective-Cという変態的なプログラミング言語を習得し、アクの強いXcodeを使って冷静にコーディングしていかなければいけません。 今回は、アプリを作ることになった動機の説明だけで終わってしまいましたが、次回から具体的にどのような工程を経てSmartScopeが形成されていったか、を書いていこうと思います。 App:SmartScope 制作ノート iPhone App:SmartScope 制作ノート(1)> アプリ制作の動機 iPhone App:SmartScope 制作ノート(2)> アプリの設計 iPhone App:SmartScope 制作ノート(3)> 最初のアプリ完成 iPhone App:SmartScope 制作ノート(4)> 再設計〜リリース iPhone App:SmartScope 制作ノート(5)> 成果とセールス

iPhone App:SmartScope 制作ノート(2)> アプリの設計

前回はアプリを作ろうと思った動機について述べました。 今回は、知識も経験もゼロの状態から、どうやってアプリの設計を行ったかを説明したいと思います。 コンセプト設計 まず、何をやりたいか。どうしたいか。最も重要な部分がここだと思います。この力が大きければ大きいほど、目標達成までの時間は短縮され、出来上がる成果物の完成度は高くなります。 やりたいことの洗い出し こういった感情を計るものさしはありませんが、とりあえずやりたいことをリストアップすることで、第三者視点で冷静に判断することは可能です。ここには、自分に都合いいことばかり書くのではなく、くだらないと思うことや、人に見せるにはあまりに恥ずかしい事も全て書き出します。 先に言っておくと、この時、あまりに書き出す量が少ないようであれば、そもそも本当に自分がやりたいことなのかを、もう一度考え直すべきです。書けないという心理的な抵抗が出ている時点で、その目標は未達になる可能性が高いです。 自分の場合、要約すれば以下の様な感じだったと思います。 何でもいいからアプリが作りたい アプリを作れるようになりたい アプリを売りたい ライトのアプリでいいと思うものがないから作りたい アプリ開発に関する難易度設定は低くしたい グラフィックにこだわりたい 日本だけでなく、世界の人々に使ってもらいたい 3ヶ月で完成させる 無料アプリは作らない 内部課金アプリが作りたい Objective-Cの作法を習得したい 1回使うと消されるアプリは作りたくない アプリリリースまでの一連の手順を理解したい 見せるのが恥ずかしいくらい単純なことばかりです(笑) ちなみに、この時点での自分のObjective-Cの能力はゼロですが、技術的な部分は後回しです。目標がしっかりしていれば技術は後でいくらでも身につける事ができる、という自信だけはありました。 要素の分類 これらの要素を、アプリの仕様に影響するかどうかでグループ分けしてみます。 【アプリの仕様には影響のないグループ】 何でもいいからアプリが作りたい アプリを作れるようになりたい Objective-Cの作法を習得したい 1回使うと消されるアプリは作りたくない アプリリリースまでの一連の手順を理解したい 【アプリのコンセプトに関わるグループ】 アプリを売りたい ライトのアプリでいいと思うものがないから作りたい アプリ開発に関する難易度設定は低くしたい グラフィックにこだわりたい 日本だけでなく、世界の人々に使ってもらいたい 3ヶ月で完成させる 無料アプリは作らない 内部課金アプリが作りたい これらの事から自分は、「Objective-Cを習得しつつ」「ライトアプリ程度の難易度のアプリ」を「3ヶ月で制作」し「有料アプリ」として「リリースしたい」と言うことが分かりました。 無料? or 有料? 有料アプリにしたかった理由は、これから作るものに対して「お金」という責任を負うことで、初めて制作するアプリに対し、ある程度のクオリティを保証しなければいけない、というハードルを自身に課したかったからです。 アプリが無料であることを理由に気楽に制作し、結果として一瞬の価値すら出ないものだけは、1発目に通るべきではないと感じていたのでしょう。 また、ユーザー視点に立った場合、購入前には無料アプリ以上に内容を検討し、一度対価を払ったアプリはすぐに手放したりはしないはずです。このことは「1回使うと消されるアプリは作りたくない」という項目とリンクしています。 課金制の無料アプリはマネタイズの設計や、課金システムの実装等、初めてアプリを制作する自分には課題が多すぎるため、この時点では却下となりました。 高すぎるハードルを設定してしまうと、助走に入る前に競技を離脱しかねません。 目標設定のミス 通常ならば、このまま知識と技術を身につけ、開発を進めていけば3ヶ月で完成させリリースできるはずなのですが、このアプリのコンセプトに関しては、絶対に目標が達成できないというとんでもないものでした。 一見すると何がいけないのか分からないと思いますが、Appleのアプリ審査のガイドラインの2.11項にその答えがあります。 一度でもガイドラインに目を通した方であれば、事前にこの問題は回避できたのですが、当時の自分はそういった知識もなく、結局リリースができないアプリを完成させてしまうことになります。 まとめ 次回からは、アプリ開発開始から初めてのiPhoneアプリの完成までを、実際のソースコードを交えながら説明していきたいと思います。 App:SmartScope 制作ノート iPhone App:SmartScope 制作ノート(1)> アプリ制作の動機 iPhone App:SmartScope 制作ノート(2)> アプリの設計 iPhone App:SmartScope 制作ノート(3)> 最初のアプリ完成 iPhone App:SmartScope 制作ノート(4)> 再設計〜リリース iPhone App:SmartScope 制作ノート(5)> 成果とセールス

iPhone App:SmartScope 制作ノート(3)> 最初のアプリ完成

前回は、アイデア、スキルが全く無い状態から、アプリのコンセプトが決定するまでの流れを書きました。 前回の内容をまとめると、 「Objective-Cを習得しつつ」「ライトアプリ程度の難易度のアプリ」を「3ヶ月で制作」し「有料アプリ」として「リリースしたい」 ということでした。 今回は実際のソースをみながら、この最初のライトアプリが完成するまでの過程を説明していきたいと思います。 アプリ完成まで まず、ヘッダーファイル(ViewController.h)にAVFoundationフレームワークをインポートします。 AVFoundationフレームワークは、iOSデバイスからの画像や音声の入出力を行うために、必要なオブジェクトがまとめられているものです。 ここでライトなのに何故?と思う方もいるかもしれませんが、もともとiPhoneのLEDはライトとしてではなく、暗い場所での動画や静止画の撮影をサポートするための照明機能なので、そのLEDのON/OFFを行うための命令は AVFoundation に組み込まれている、という訳です。 そして、以下のコードを ViewController.m にペーストします。 最後にIB(インターフェースビルダー)でボタンオブジェクトを作成し、IBActionと接続します。そのボタンの IBAction から torchOnFunction を実行すればiPhone背面のLEDが点灯し、torchOffFunction を実行すればLEDが消灯します。 終わりです(笑) もちろん、これで実際に申請に出したアプリが完成と言うわけではなく、アイコンデザイン、UIデザイン、各種設定画面やアニメーション効果を作成し実装していくことになりますが、既存の無料ライトアプリの基本は、この程度のコーディングで実現できます。 アプリの問題点 しかし、前回でも少し触れましたが、そもそもこのライトアプリというものは、Appleのアプリ審査ガイドラインの2.11項にリジェクト対象となることが明確に定義されています。 App Storeで既に存在するアプリの複製、特に、おなら、げっぷ、懐中電灯、カーマスートラアプリのように多く存在するアプリの場合はリジェクトされます リジェクトされることがあります、ではなく、特に、懐中電灯アプリはリジェクトされます、とあります。特に〜と強調し、明確にそのジャンルまで定義されている項目はここだけです。それだけ手がつけやすいアプリだからでしょう。 この事実を知らないまま、せっせとこのライトアプリをブラッシュアップし、最初のアプリ「SmartLight」が完成し、初めての申請を行いました。 初のリジェクト その後、リジェクト通知が来るのは早かったです(笑)知らなかったとは言え、ダメなことをやったわけですから当たり前です。最初からうまくいくとは思っていなかったので、リジェクト自体にショックはありませんでしたが、リジェクトされた理由にショックを受けました。 この後すぐガイドライン全てに目を通したのは言うまでもありません。 ここで、自分の作ったアプリが明確にリジェクトの対象であることを知れば、別コンセプトのアプリに方向を切り替え、一旦仕切りなおすはずですが、この時思ったのが「どうにかしてこのライトアプリをリリースさせたい」というものでした。 ライトの機能にこだわる理由 何故そう思ったのか、それはリジェクトされた原因であるガイドライン2.11項を見た時でした。もう一度引用します。 App Storeで既に存在するアプリの複製、特に、おなら、げっぷ、懐中電灯、カーマスートラアプリのように多く存在するアプリの場合はリジェクトされます 前述したように「懐中電灯はリジェクトされます」は明確な表現ですが、「App Storeで既に存在するアプリの複製」に関しては遵守されていないと感じました。複製とまではいかないまでも、App Storeには既に似たようなアプリで溢れかえっているからです。 次の2.12項も気になりました。 ユニークではない、あまり有用でない、単にウェブサイトをバンドルしたもの、永続する娯楽価値を提供しないアプリケーションはリジェクトされます また、10.6項では Appleと当社の顧客は、シンプルで洗練された、創造的なインターフェイスを好みます。彼らはより多くの働きを求めるが、そこにはそれだけの価値があります。Appleは高いハードルを設定しています。あなたのユーザインタフェースが複雑、または非常に良いとされる条件を満たせていない場合、リジェクトされることがあります とあります。開発者にとってはありがた迷惑な基準ですが、この10.6項にAppleの全てが込められていると思います。ここは普段から自分自身がものづくりに関して一番意識している部分なので、個人的には好きな項目です。 ガイドラインの本当の意味 これらをみてみると、ガイドラインの特定の項目に関しては、非常に柔軟性のある定義であることに気づくはずです。そして、このことはAppleのレビュワーには、開発者が申請に出したアプリのリリースに対しての権限に、ある程度の裁量が与えられていると言うことを意味します。 一見するとガイドラインさえ守れば、何でもリリース出来るように思いがちですが、実際はそんなことだけではないように感じられました。それと同時に、アプリの審査に関してAppleのレビュワーの裁量がどういったものなのかを、今回制作したアプリである程度把握しておきたいと思った訳です。 まとめ 次回は、この無謀な考えを実現するために、リジェクト後にどのようにしてコンセプトを再構築し、SmartScopeが完成したかをサンプルコードを交えながら説明していきたいと思います。 最後に今回紹介したライトアプリが、コピペだけで動くようにしたアプリのサンプルコードを載せておきます。 アプリ制作の基本を知るという意味においては非常に有効な手段ですので、是非実機でテストしてみてください。 制作手順 Xcodeの新規プロジェクトからSingle View Applicationでスケルトンを作成します。 IBで UIButton を toggleBtn という名前で作成します。 以下のコードを該当ファイルにペーストし、オブジェクトとIBActionを toggleBtn にリンクします。 ビルドして完成。 サンプルコード ViewController.h ViewController.m App:SmartScope 制作ノート iPhone App:SmartScope 制作ノート(1)> アプリ制作の動機 iPhone App:SmartScope 制作ノート(2)> アプリの設計 iPhone App:SmartScope 制作ノート(3)> 最初のアプリ完成 iPhone App:SmartScope 制作ノート(4)> 再設計〜リリース iPhone App:SmartScope 制作ノート(5)> 成果とセールス

iPhone App:SmartScope 制作ノート(4)> 再設計〜リリース

前回は、人生初のiPhoneアプリ完成から申請〜リジェクトまでを書きました。 今回はリジェクト後に自分が何を考え、どうやってリリースまで漕ぎつけたかを説明していきたいと思います。 リジェクトからアプリの再設計 はじめに、今だから言えることですが、自分はこのSmartLight(後のSmartScope)がリリース出来ないとは最後まで考えたことがありませんでした(笑)変な自信がある勘違いさんと言われても仕方ないですが、この思考回路はとても重要だと思うので、ここでその理由を書いておきます。

iPhone App:SmartScope 制作ノート(5)> 成果とセールス

長々とお話させていただいたSmartScopeの制作ノートも今回で最後です。 前回お伝えしたように、本日はSmartScopeをリリースしたことによる成果と反省点、SmartScopeのセールス状況について書いてみようと思います。

WordPress:phpMyAdminでMySQLデータベースをバックアップする

いざというときのために、phpMyAdminを使ってバックアップする手順をメモ。 phpMyAdminの手順 左カラムよりバックアップを取りたいWordPressの データベース をクリック 右カラムのトップメニュー > エクスポートを選択 エクスポート方法:詳細 を選択 テーブル:全選択 出力:出力をファイルに保存する を選択 出力:テンプレート、文字セットは デフォルト フォーマット:SQL を選択 フォーマット特有のオプション:コメント表示 のみチェック フォーマット特有のオプション:ダンプするテーブルは 構造とデータ を選択 生成オプション:全てチェック データのダンプオプション:デフォルト エンコーディングへの変換:なし 実行するをクリック まとめ プラグインでのWordPressのバックアップは、PHPバージョンの違いや各環境による不具合が見られるので、面倒でも定期的に手動でバックアップをとることをおすすめします。

iTunes Connect:リジェクト(5回目)→→公開

結局前回の申請はリジェクトだった。資料提出から翌日のことだった。 度重なるリジェクト リジェクト理由は主機能が動作しないというもの。 これまでのリジェクトと違い、その内容があまりに絶望的で、問題解決の糸口が見つからず途方にくれていた。そもそも、開発時に不具合が認められるようなものを申請などしないからだ。

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

img_sqn_00

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

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