サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
blog.shonanshachu.com
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 Android Advent Calendar 2013の23日目。 リア充イベントのクリスマスがもう目の前に迫ってますが、 今年は急遽、サンタがインフルエンザの為、中止みたいですよ。 この記事は23日に急遽書いています。 忘れていたわけではありません。 どちらかと言うとネタが無かった。 無理やり探しました。 ネタ無いんだもん。 Androidのコードを全然書いていないので、 KitKatについてとか書きたかったんですが、 あんまりネタが無い。 ので、iOSから横流しし、Silent Notificationの記事を書きます。 ってか、そもそも、AndroidのNotificationは、自分で書かないと、 表示してくれ
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 arm64を追加したユニバーサルライブラリをビルドする方法を書いていきます。 まず、今までのarmv7 armv7s向けにビルドします。 xcodebuild -project StatisLibrary.xcodeproj -configuration Release -sdk iphoneos -target StatisLibrary clean build ARCHS="armv7 armv7s" IPHONEOS_DEPLOYMENT_TARGET='4.3' TARGET_BUILD_DIR='./build-arm' BUILD_PRODUCT_DIR='./build-arm' 次に、arm64向けにビル
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 期限切れのAPNs用pemファイルを更新し忘れました。 ので、今回はチェック用のcronを回すように設定。 SSLの証明書はopensslコマンドで有効期限を確認出来ます。 この有効期限を30日前になったらメールで通知してくれるように設定しました。 確認コマンドは下記サイトからコピーしてきました。 リンクを貼ろうと思ったのですが、 ブログを書いている時はサーバダウンしてました。 https://raim.codingfarm.de/blog/2013/03/07/checking-expiry-dates-of-local-and-remote-ssl-certificates/ 下にコマンドをコピーしておきますので、
そろそろiPhone5S発表されますかねぇ。 発売が楽しみです。 今回はUIWebViewのリクエストヘッダーをどうこうする方法をメモ User-Agentを書き換える NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Custom User Agent", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; の2行でデフォルトのUser-Agentが上書きされます。 ただ、アプリ内全てのUIWebViewが書き換わってっしまいますので、 一部の箇所でのみUser-Agentを変更したいなんて場合には使えません。 カスタムヘッダーを付ける HTTPのリクエストヘッダーは
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 アプリでJenkinsをビルドしたら、そのままiPhoneへインストールしたいので、 TestFlight的な何かを作ってみました。 作るために必要となる知識をまとめてみました。 ビルド iPhoneのアプリのビルドをしますが、 ビルドする際にiPhoneが登録してあるProvisioning Profileでビルドします。 また、.ipa形式までビルドします。 JenkinsにはXcode Pluginがあるので、そちらを使ってもいいですし、 以前、 【iPhone】Jenkins CIで自動ビルド という記事も書いているので、そちらのシェルをコピーしてもビルド出来ます。 ビルドが終われば.ipa形式のファイルが出来上
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 今回はMochaを使った、APIのIntegration Testについてです。 アプリを作っていると、APIも見たり書いたり、アップデートしたりするのですが、 アップデートするごとに、他のAPIへ影響していないかをテストします。 Mochaは、JavaScriptのテストフレームワークです。 とりあえずインストールします。 npm install mocha -g これでmochaコマンドが実行可能です。 次に、APIのテストなので、requestモジュールをインストールしました。 npm install request requestに、APIの条件に合わせてqsやGET/POSTを変更しつつ、 ひと通りAPIを叩き
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 Jenkinsにアプリビルドを任せっきりなdommyです。 一応コミット前にはローカルでちゃんとビルドしますよ。 たまに忘れますけど。 と、今回はアプリビルドに特化したJenkinsプラグインの紹介です。 Jenking GIT Plugin まずはSCMプラグインから、Gitプラグインの紹介。 単純にGitからcloneする為のプラグインです。 ブランチの指定も出来ます。 ポーリング感覚を5分とかに設定しておけばレポジトリをチェックしてくれます。 コミット後、すぐにビルドしたい場合はgitのhooksに登録して下さい。 登録方法は【Jenkins】GitのコミットをHookしてJobを実行を参考に Jenking Mu
ちょっと前からですが、Node.jsで運用しているサービスのデーモン化ツールを node-foreverから、node-pm2へ変更いたしました。 foreverと比較して高機能なpm2をお伝えいたします。 クラスタリング foreverコマンドは、基本的にプロセスが生きている事を管理するのみでした。 pm2では、それはもちろんの事、使っているCPUに合わせてクラスタリングする機能が付いています。 Node.js v0.6で追加されたクラスタリング機能はソケットをネットワーク化されたNode.jsのアプリケーション間でシェアする事が出来ました。 pm2では基本機能として、追加コードなしにそれらを実装しています。pm2本体がマスタープロセスの役割をし、アプリケーションコードをクラスタリング化された子プロセスとして扱います。 すべてのCPUを使ってクラスタリングするには、 pm2 start
自分の作業を出来るだけスムーズにしたい。 と、いう訳でGitへコミットしたタイミングで、 Jenkinsの該当ジョブを実行するように設定してみました。 Gitレポジトリからポーリングしてくるよりも、時間的には相当スムーズになりました。 Jenkins CIまず、Jenkins側の設定ですが、Jenkins Git Pluginを導入します。 すると、ソースコード管理システムのところにGitの選択肢が現れます。 Repository URLに、該当のGitレポジトリを入力。 JenkinsユーザとしてGitからclone出来るかどうかは コマンドラインで調べておいた方がいいです。 ビルドトリガのSCMをポーリングにチェックを入れますが、 中身は特に何も設定しません。 Gitレポジトリのあるサーバへ行き、レポジトリの中身を編集します。 ~/repositories/sample.git/hoo
iOS6ベータのインストール方法で検索されている方が多いので、 iOS7 beta版のインストール方法と、復元方法を記載しておきます。 ただし、iOS7のベータ版のインストールは自己責任で行なって下さい。 こちらで確認したところ、iPhone4では日本語が打てますが、iPhone4S、iPhone5では日本語の漢字変換が出来ません。 (2013/06/12追記) iPhone4Sでも漢字変換が出来ない問題が起こらない端末がありましたキャリアによる違いも無く、問題が起こる原因は今のところ特定出来ていません。iOS7で漢字変換出来ない場合、[一般]→[リセット]から[キーボードの変換学習をリセット]で問題は解決するようです。ただし、ユーザ辞書がある事が必ずしも日本語変換出来ない問題では無いようです。 同様の方法で問題が解決した方はコメントいただけると助かります。 また、インストールも復元もWi
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 ここ最近は雑用係としていろいろな事をやっております。 その中で、UnityをJenkinsでの自動ビルドに対応させるというのがありまして、 iPhoneアプリ、Androidアプリ共に自動的にUnityで書いたコードからビルド出来るようにするために、 バッチモードでのビルドスクリプトを書きました。 バッチスクリプトUnityのソースコードはC#で書いているので、 UnityのバッチスクリプトもC#で書きます。 using UnityEngine; using UnityEditor; using System.Collections; public class BatchBuild { private static st
Android Studioを3日ぐらい試し、設定等もいろいろ変えてみましたので、 メモ程度に残していきます。 ヒープサイズAndroid StudioのVMのヒープサイズの変更場所を探しました。 cd ~/Library/Preferences/AndroidStudioPreview/options vi project.default.xml の中に、-Xmx、-Xmsオプションがあったので、Eclipseと同じぐらいに設定しておきました。 具体的には-Xmx2048m -Xms512mです。 自動補完OFFどのIDEも自動補完は僕にとって邪魔で、ショートカットで呼び出すのが理想です。 自動補完をONにしているだけで重くなりますし、コーディングの邪魔になったりします。 ので、下のスクリーンショットのようにOFFにしました。 自動補完のキーバインドかと言って、自動補完が無いならIDEで
今からGoogle I/O Extended in Tokyoに参加してきます。dommyです。 3月はサンフランシスコにいたので、そのまま入ればMosconeで参加出来ましたが、 残念ながら現在日本にいるので、六本木での参加です。 Google I/Oまで時間があるので、久々のブログ更新します。 つい先日、GoogleからGoogle Playで開発者からレビューに対して返信出来るようになりましたと報告がありました。 記事はこちらAll Google Play Developers Can Now Reply to User Reviews 実は以前からレビュー出来るようになるという予告があったので、 そこまでニュースに対して驚くことは無かったのですが。 良く考えると、これってどうなの?と思うようになりました。 時間まず、第1に返信には時間的コストが掛かります。 私のアプリのように数件の
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 僕のMacには4つのXcodeが入っています。 最新のXcodeでビルドするとエラーになる、古いプロジェクト等、いろいろありますので、 Xcodeは常に最新にするものが1つと、その他の古いバージョンをインストールしています。 Jenkinsでの自動ビルドへ移してから、 プロジェクトごとにバージョンの指定をすれば、Jenkinsでも古いXcodeが使えるようです。 と、いう訳で早速やってみます。 Xcodeのインストールまずは、ビルドサーバ、もしくはローカルにXcodeの古いバージョンをインストールします。 Downloads for Apple Developers こちらから、古いバージョンのdmgファイルをダウンロー
エミュレータでアプリを走らせれば "UnknowHostException" そういえば、Proxy使ってたよなぁと思いだし、 設定する事いろいろ。 3時間ぐらい掛かって、やっと繋がったので、試した事をひと通り 起動オプションEclipseからAndroidを起動する場合、(Macの場合ですが、) Eclipse→Preferences→Android→Launchと移動して、 Default emulator optionsに -http-proxy http://127.0.0.1:8080 IPとポートはProxyのをそのまま これではダメだったので、コマンドラインで同じ事を実行 emulator -avd {エミュレータ名} -http-proxy http://{PROXYのIP}:{ポート番号} でもやってみましたが、ダメでした。 エミュレータ内の設定最後に、エミュレータのホー
Macのコマンドはオプションの若干の違いがあり、面倒ですね。 ちょっとずつ分かった事はメモしていきます。 今回、sedの上書き保存でハマりました。 まずは、 $ sed -i.bak -e s/TAG/tag/g src/com/shonanshachu/app/MainActivity.java とコマンドを叩いてみました。 MainActivity.java.bakの作成と、 TAGをtagに書き換え、上書き保存したファイルが出来上がりました。 次に、そのまま上書きしたかったので、 $ sed -i -e s/TAG/tag/g src/com/shonanshachu/app/MainActivity.java .bakを抜いてみました。 すると、MainActivity.java-e というファイルが出来てしまう。 なぜ???全然理由が分からず彷徨っていると、 Macは-iを指定し
毎日毎日、コードを書きまくっているdommyです。 iPhoneもAndroidも書いてるんですが、ビルドって時間掛かりますよね? しかも、アプリってリリースからバージョンアップまでのサイクルが短い。 直してはテスト、直してはテスト。もううんざりです。 ってな訳でCIサーバを用意してみました。 今回はiPhoneのアプリビルド方法を書きます。 環境プロジェクト管理はこんな感じで行なっていると考えてください。 あくまで理想です、理想。 JenkinsからデバイスへはTestFlight的な何かを入れたいんですけどね。 まぁ、ipaとかそのままインストール出来るんで問題ないんですけど。 で、JenkinsでiPhone用プロジェクトを作成しますが、 Shellでipaまで作成します。 ビルドスクリプトいろいろJenkinsの設定をして、ビルドのところにシェルスクリプトを書いきます。 Xcode
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 普段からMacを愛用しているdommyです。 最近、Android開発以外にもいろいろするので、 bashrcの中身を整理していました。 なので、bashの設定をちょこっと晒してみたいと思います。 Dropboxbashに関係無いDropboxですが、必須です。 まずはMacへインストールさせます。 そして、使うMacのアカウントはすべて共通化させます。 bashrcなどをすべてDropboxとgitで管理するので、 Dropboxをまずインストールします。 インストールしたらディレクトリを作成 $ cd ~/Dropbox $ mkdir git gitディレクトリがレポジトリになります。 Git次にgitをインストー
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 Android Advent Calendar 2012に参加したdommyです。 2012年もあと2日、今年も山あり谷ありの1年でした。 12月30日はすでにAdvent Calendarに載るべき日付でも無いですが、 Androidに関する記事ならなんでも良いとの事だったので、 リアルタイム通信関連の記事を書いてみたいと思います。 前提として、Androidでの通信といえばHTTPになります。 これはクライアントからのリクエストに対して、サーバがレスポンスを返すという形で、 サーバからリクエストする事は出来ないので、 リアルタイム通信とは違います。 socket通信AndroidはNDKを使えばC言語でも実装可能なの
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 In-App Billing(アプリ内課金)のAPIが更新されました。 Android Developersで紹介されています。 In-App Billing Version 3 | Android Developers Blog 新規機能や変更点をご紹介。 In-App Billing API Version 3 In-App Billingは2012年12月10日に機能の拡張をいたしました。パワフルで自由度の高いAPIへ変更し、ディベロッパーはさらにアプリでの成功を収められるでしょう。In-App Billing API version 3での変更点は、 コードのデザインを変更し、書きやすく、デバッグしやすく、メンテ
Mac OS Xを使っていて、AVD(Android Virtual Device Manager)が起動しなくなりました。 直前まで、エミュレータの初期化を行なっていて、 ローディングが長く続くので、とりあえず強制終了をしましたら、 起動しなくなったので、その直し方メモ。 EclipseからAVD Managerを起動しようとしても反応が無いので、 とりあえず、コマンドラインからAVDの起動を試みる。 $ android avd java.lang.NullPointerException at com.android.sdklib.internal.avd.AvdInfo.getDeviceName(AvdInfo.java:158) at com.android.sdkuilib.internal.repository.ui.DeviceManagerPage.fillDevices
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 ScrollViewの中にListViewを入れようとした人いますよね? 僕も入れようとしました。 でも、ScrollViewもListViewもスクロールするものですから、 ScrollView内にListViewは入れてはいけないんですよね。 でも、ListViewのように、コンテンツの数分の行数が欲しくて、 そのコンテンツの数が動的に変化するなんて場合はどうすればいいんだ〜。 そんな人の為のクラスを用意いたしました。 LinearLayoutにAdapterを設定して、 コンテンツを追加するたびに1行増やせるというものです。 public class LinearListView extends LinearLay
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 前々から試してみたいなぁと思っていたsocket.ioを試したいと思います。 まずは、socket.ioがどんなものか知る為にチャットプログラムを作成しました。 Expressでプロジェクトを作る まずは、プロジェクトディレクトリまで行って、プロジェクト作成 express -ejs chat cd chat npm install -d サーバサイドの編集 まず、npmでsocket.ioをインストールします。 npm install socket.io 次に、app.jsを編集してサーバサイドを編集します。 app.jsの最後のcreateServerの戻り値を変数に格納して使います。 var server = ht
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 AWSにサーバ監視ツールのCloudWatchが追加されて随分経ちますが、 DiskReadやDiskWriteの監視はあっても、 DiskUsageや、FreeSpaceがありません。 EBSに付随するのか、EC2に付随するのかも良く分からない為、 とりあえず英語で検索して出てきた結果を使ってCloudWatchによる監視を追加しました。 CloudWatchコマンドラインツールのDLまずはCloudWatchコマンドラインツールをダウンロードし、展開します。 最新版はhttp://aws.amazon.com/developertools/2534にあります。 cd /usr/local/src/ wget http
expressを使ってサービスを開始する場合、 デフォルトのログではユーザの細かな情報までは得られないので、 app.jsを編集して、apacheのようなアクセスログにしてみました。 // app.js app.use(express.favicon()); // remove default logging // app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); // write access log app.use(function(req, res, next) { console.log([ req.headers['x-forwarded-for'] || req.client.remoteAddress, new Date().toL
Pixelsの略です。 実際の画面上のPixelがそのままの単位になります。 たとえば、480px X 800pxの画面であれば、 1pxは画面の1/480という事になります。 dp(dip)Density-independent Pixels(密度に非依存のピクセル)の略です。 dp=dipですので、書く文字の少ないdpを私は使います。 ディスプレイ解像度の物理的な密度に応じた抽象単位になります。 160dpi(dots per inch)を基準にした単位で、1dpは160dpiの画面で1pixelになります。 dpとpixelの比率は画面密度(dpi)によって変化しますが、必ずしも正比例ではありません。 Scale-independent Pixels(スケールに非依存のピクセル)の略です。 dpの単位と似ていますが、画面上のサイズはユーザのフォントサイズ設定に準じます。 ptPoin
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 お久しぶりです。dommyです。 今回はEC2で稼働中のサーバのディスクがいっぱいになりそうだったので、 ディスク容量を増やす為にEBSのボリュームを増やしてみました。 環境はAmazon EC2 Tokyo Region micro instanceにCentOS 6.0 (rightimage_centos_6.0_x86_64_20110810.1_ebs)をOSとして利用しています。 1. Instanceの停止まずはAWS Management Consoleで、EC2のメニューへ行き、 増やしたいEC2のインスタンスを停止します。 "Terminate"は削除されてしまいますので、"Stop"で停止して下さい
GoogleはCloud to Device Messaging(C2DM)を、 新たにGoogle Cloud Messaging for Android(GCM)へ変更しました。 名称の変更に伴い、システム的な変更もあり、 これからのアプリはすべてC2DMでは無く、 GCMで実装して下さいとの事で、順次翻訳していきます。 参照 : Google Cloud Messaging for Android | Android Developers Google Cloud Messaging for Android (GCM)は開発者がサーバからAndroidデバイスのアプリケーションまでデータを送信するのを手助けするサービスです。このサービスは、Lightweight(軽量)なメッセージでAndroidアプリに対してfetchする必要がある新しいデータが届いている事を知らせるものです。たと
Android Developersのデザインがかなり変更されていてビックリ! Android 4.0向けに全体的なデザイン等のパターンも変更され、 Androidアプリのデザインに関しても解説等が増えていたので紹介する。 まずは、デフォルトで用意されているAndroid用アイコン等がダウンロード可能になった。 これはデザインの出来無いAndroidアプリエンジニアにとってはかなり嬉しい。 検索やカメラ等のアイコンはこれでデフォルトのものを使えるようになった。 Downloads | Android Developers Androidアプリ全体のデザインに関しても、 色使いやサイズ等の解説があるので、目を通しておくと良いだろう。 次に、Google Playのダウンロードリンクを自動生成してくれるScriptが追加。 これで、App Storeマークに似たGoogle Playマークを作
次のページ
このページを最初にブックマークしてみませんか?
『湘南社中テクニカルブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く