タグ

ブックマーク / www.yoheim.net (34)

  • [JavaScript] 英数字を全角から半角に変換するコードが、7行で実装できる - YoheiM .NET

    こんにちは、@yoheiMuneです。 担当プロジェクトでソースレビューをしていて、とある人が書いてきた掲題の件について始めて見た書き方で、とても良かったのでブログに書きたいと思います。 全角英数字→半角英数字をJavaScriptで書く JavaScriptの文字コードはUnicode(UTF-16)ですが、その文字コード表の特性を活かすことで、全角英数字を半角英数字に変換することができます。具体的には、 全角英数字の文字コードから「0xFEE0」(=65248)を引くと半角英数字の文字コードになる という特性です。これをJavaScriptで実装すれば、全角→半角の変換を実現することができます。 具体的に実装してみると以下のような処理になります。 // 全角→半角に変換する(7行で実装できる) function zenkakuToHankaku(str) { var hankaku =

    [JavaScript] 英数字を全角から半角に変換するコードが、7行で実装できる - YoheiM .NET
  • [XCODE] Pocket APIをiOSから利用する - YoheiM .NET

    こんにちは、@yoheiMuneです。 各種SNSヘ連携するコードを良く書いている今日この頃。 今回は、PocketAPIをiOSから利用する方法をブログに書きたいと思います。 Pocketとは Pocketとは旧名:Read It Laterのサービスであり、 読みたいページ(読みかけのページ)のURLを登録することで、「後で読む」ことが出来る機能です。 またPocketが提供しているアプリによっては、登録したURL先のページをキャッシュしてくれて、オフラインでも閲覧することが出来るなど、いろいろと便利なサービスです。 Safariに搭載されたReading Listが似た機能ですが、Pocketを使うとOS問わず利用できるので職場やプライベート関係なく利用できるのがいい点です。 Pocket APIをiOSから利用する方法 Pocket APIを利用するためには、OAuth用のキーを入

    [XCODE] Pocket APIをiOSから利用する - YoheiM .NET
  • [XCODE] ネットワークが圏外になったり、圏外から圏内に変わった事をアプリ上で知る方法 - YoheiM .NET

    こんにちは、iPhoneアプリを絶賛開発中の@yoheiMuneです。 今日は、外部サーバーを使うアプリとかで、ネットワークが圏外になったり、圏外から復活した際に、 通知を受けて、処理を停止/再開を行えるようにする仕組みを紹介したいと思います(⌒▽⌒) 利用する技術は、Reachabilityというクラスです アップルから提供されているReachabilityというクラスを用いる事で、 現在のネットワーク状態を知ったり、ネットワーク状態が変わった際に通知を受ける事が可能です。 Reachabilityの導入方法は、こちらを参照頂けると幸いです(*´∇`*) - [XCODE] ネットワーク接続が3GかWifiか圏外かを調べる簡単な方法@YoheiM.NET ネットワーク状態が変化した際に通知を受ける方法 通知を受ける為に、NSNotificationCenterの機能を利用します。 上記リ

    [XCODE] ネットワークが圏外になったり、圏外から圏内に変わった事をアプリ上で知る方法 - YoheiM .NET
  • [XCODE] UIViewの背景色を透明にする方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、UIViewの背景色を透明にする方法を学んだので、ブログに残しておきたいと思います。 透明にするには、設定したり背景色を指定したりと何個かやることがあります。 今日はそのやり方をソースコード付きで書きたいと思います。 背景色透明のViewを作成する 背景色透明のViewを作成すると、一つ下のViewの表示内容も見えるようになり、アプリケーションとしての表現力が向上するのではないでしょうか。 例えば、描画アプリの場合には、レイヤーという考えを、背景色透明なVIewで実現することが出来ます。 実装方法は簡単。以下のようにすれば出来るようです♪(´ε` ) - (void)viewDidLoad { [super viewDidLoad]; // 背景色を透明にしたいUIViewのインスタンスを作成する UIView *aView = [[UIVi

    [XCODE] UIViewの背景色を透明にする方法 - YoheiM .NET
  • [XCODE] ネットワーク接続が3GかWifiか圏外かを調べる簡単な方法 - YoheiM .NET

    今日は、iPhoneアプリ制作の内容のうち、ネットワーク接続中に、 現在の接続が3GなのかWifiなのか圏外なのかを判断する方法をブログに書きたいと思います。 自分のアプリ制作中に、WifiならiTunesへのリンクを有効にしたいなぁと思い、 ネットワーク状態を調べる方法を検証したので、その内容を書きたいと思います。 まずは準備から まずは、ネットワーク状態を調べる為の、Appleが作成している?クラスをインポートします。 Reachability.hとReachability.mを、以下のリンクからダウンロードできます。 Reachability @developer.apple.com また、以下のフレームワークを追加する必要があります。 私はこれを知らずに、起動時にリンクエラーとなり、何が不足しているのかかなり困りましたw。 「SystemConfiguration.framewor

    [XCODE] ネットワーク接続が3GかWifiか圏外かを調べる簡単な方法 - YoheiM .NET
  • [XCODE] Objective-Cでdelegateを実装する方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、Objective-Cに存在するProtocolという機能を利用して、Delegateパターンを実装する方法をブログに書きたいと思います。 Protocolとは ProtocolとはObjective-Cに用意されt氏組で、JavaのInterfaceに似た仕組みを提供します。 「似ている」という表現を用いるのは、JavaのInterfaceと異なる点が多くあるからです。 違うポイント Interfaceはis-aの関係、Protocolはconfirm toの関係 Protocolでは、定義したメソッドをすべて実装する必要が必ずしもありません。 以下の定義のように@optionalと定義したメソッドは、実装するか否かを選ぶことができます。 @protocol LoginServiceDelegate <NSObject> // @requi

    [XCODE] Objective-Cでdelegateを実装する方法 - YoheiM .NET
  • [XCODE] CoreDataを用いてデータ管理を行う方法。登録編!! - YoheiM .NET

    今日は、CoreDataの機能を用いたデータ管理方法のうち、データを登録する部分をブログに 書きたいと思います。ライトな感じです(*´∇`*) CoreDataを用いたデータ管理 この記事も含めて、以下のような分類でCoreDataの使い方をブログに書いています。 今回の登録を行う為には、準備編で作成するNSManagedObjectContextが必要ですので、 そちらも参照頂けると幸いです(((o(*゚▽゚*)o))) - CoreDataを用いてデータ管理を行う方法。準備編。 - CoreDataを用いてデータ管理を行う方法。登録編!! - CoreDataを用いてデータ管理を行う方法。更新・削除編!!! - CoreDataを用いてデータ管理を行う方法。検索編!!!! CoreDataでデータを登録する CoreDataでデータを新規に登録する方法は簡単に出来ます。 新しくNSMa

    [XCODE] CoreDataを用いてデータ管理を行う方法。登録編!! - YoheiM .NET
  • [nodeJS] バッチ処理プログラムを書く際に、コマンドライン引数を受け取る - YoheiM .NET

    例えば、以下のプログラムがあるとします。 // sample.js console.log('args: ', process.argv); このJSファイルを以下のように呼び出した場合、 $ node sample.js aaa bbb ccc 以下のような結果が出力されます。 // コンソール出力結果 args: [ 'node', '/Users/munesadayohei/tmp/sample.js', 'aaa', 'bbb', 'ccc' ] という感じです。 そのため、コマンドライン引数を扱いたい場合には、process.argv[2]以降の値を取得すれば良いです。 例えば、第1引数の値を使いたい場合には、以下のように記述します。 // 引数チェック if (process.argv.length < 3) { console.log('missing argument.')

    [nodeJS] バッチ処理プログラムを書く際に、コマンドライン引数を受け取る - YoheiM .NET
  • [MongoDB] フロントエンドエンジニアにもできるMongoDBを使ったログ分析 - YoheiM .NET

    このような表を作ることで、例えば以下のことがわかります。 経路002は流入数の割に獲得効率や翌日継続率も悪い。ここを改善するサービスをグロスできるかも。 経路003は獲得効率と翌日定着率が良い。何が良いのかをさらに分析すれば、他の流入経路の改善に生かせる。 Action2は翌日継続率に良い結果を与えている可能性がある。もう少し詳しく調べてみたい。 このようにユーザーの活性化は流入経路別に分析をすることで、問題点やチャンスを浮き彫りにすることができます。 今回はこの表を作るためにログ分析を行います。 ここまでで分析のスタート地点とゴール地点がわかりました。 あとはその間の道をつなぐためにプログラムを書くだけです。 次の章では、MongoDBでの分析を行うための準備段階を紹介します。 分析(準備編) ここでは分析の準備編として、サーバーログをダウンロードしてきて、整形して、MongoDBに登録

    [MongoDB] フロントエンドエンジニアにもできるMongoDBを使ったログ分析 - YoheiM .NET
  • [NodeJS] requestモジュールを使って、サーバーから画像ファイルをダウンロードする - YoheiM .NET

    こんにちは、@yoheiMuneです。 先日とあるサイトの不正画像をチェックするために、nodejsで画像ファイルをダウンロードするプログラムを書きました。利用したライブラリやコードなど備忘録として残したいので、ブログを書きたいと思います。 Special Thanks to https://flic.kr/p/dG9ffs 利用したライブラリ node.js標準のhttpモジュールを使ってもファイルのダウンロードはできますが、少々実装が面倒です。今回はrequestモジュールを利用しました。 requestモジュールは、httpリクエスト(httpsリクエスト)をコールするためのシンプルなAPIです。今回紹介するGETメソッド以外にもPOSTやPUTが使えたり、OAuthのためのリクエストにも使えたりする便利なモジュールです。 インストールは簡単で以下のように行います。 $ npm in

    [NodeJS] requestモジュールを使って、サーバーから画像ファイルをダウンロードする - YoheiM .NET
  • [JavaScript] 最近のjQueryとの付き合い方いろいろ - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はjQuery Advent Calendar 2014の15日目の記事として書きたいと思います。 何を書こうかなーと思っていたのですが、最近の自分とjQueryについてライトに書いてみたいと思います。 Special Thanks to https://flic.kr/p/92J4Qt 目次 利用者としての付き合い方 最近の案件ではjQueryラブの時代は過ぎ去ったようで、案件によってjQueryが使われたり使われなかったりします。 今の案件ではjQueryが導入されていますが、担当者がコロコロと入れ替わったらしく、様々なjQueryの使い方が散乱しています。 ほぉほぉこんな書き方もできるのかと学ぶことが多くて、ある意味有意義ですw。 jQueryを使う理由 最近感じるjQueryを使うメリットは、以下のようなことがあります。 何かサクッと作る

    [JavaScript] 最近のjQueryとの付き合い方いろいろ - YoheiM .NET
  • [JS] Webkit限定!デスクトップ通知の実装が、意外と簡単だったのでやってみた - YoheiM .NET

    こんにちは、です。 HTML5で策定中のWeb Notificationを、Chromeデスクトップ通知として実装することが出来ます。 今回のブログでは、Webkit限定のお話になりますが、Webページからデスクトップ通知を行う方法を書きたいと思います。 Webページからのデスクトップ通知とは デスクトップ通知とは、SkypeとかTweetDeckなどのデスクトップアプリケーションを使っていると、 何か通知があると画面の右上とかにバルーンが表示されるあやつです。 今迄のWebでは、セキュリティ観点よりWebページからローカルPCへのアクセスが制限されていましたが、 現在策定中のHTML5では、デスクトップ通知が可能になるかもしれません。 Chromeでは、すでにデスクトップ通知機能が実装されていて、利用できるようになっています。 今回は、この実装内容を紹介したいと思います。 デスクトップ

    [JS] Webkit限定!デスクトップ通知の実装が、意外と簡単だったのでやってみた - YoheiM .NET
  • [パフォーマンス] 画像をLocalStorageへキャッシュして、Webページの表示を少し速くしてみる - YoheiM .NET

    [パフォーマンス] 画像をLocalStorageへキャッシュして、Webページの表示を少し速くしてみる こんにちは、@yoheiMuneです。 以前のブログで、「CSSとJSをLocalStorageにキャッシュして、2回目以降の表示を速くしてみる」を紹介させて頂きました。 今回はサイトで頻繁に利用する画像をLocalStorageへ保存することで、表示を高速化する方法をブログに書きたいと思います。 画像をLocalStorageへ保存すると表示が速くなる? 画像やCSSやJSなどのファイルは、Expireヘッダなどを使ってブラウザへキャッシュすることが可能です。 ただ多くのスマホの場合、画面を開くたびにキャッシュ確認のためサーバーへ問い合わせを行ってしまい、そのリクエスト待ちで表示が遅れるのがもったいないのです。 ただしLocalStorageの上限が5MB程度のブラウザが多いので、た

    [パフォーマンス] 画像をLocalStorageへキャッシュして、Webページの表示を少し速くしてみる - YoheiM .NET
  • [Tool] PNGの圧縮をコマンドラインから実行できるpngquantを使って右クリックから簡単画像圧縮を行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 PNGの画像圧縮と言えば、以前のブログで紹介させて頂いたImageOptimやImageAlphaがありますが、今回はコマンドラインツールを紹介したいと思います。 PNGの圧縮がコマンドラインで出来るpngquant ngquantというツールを使うと、コマンドラインでPNG圧縮が出来るようになります。24/32-bit PNGを8-bitPNGに変換するツールです。 PNGの圧縮ではImageAlphaやImageOptimといったGUIツールがありますが、今回はコマンドラインツールを紹介したいと思います。 コマンドラインで実行できるということは、gruntなどのビルドタスクに組み込むことが出来たり、Automatorを使って右クリックのメニューに追加したりと色々と応用が出来て便利です。 それでは、pngquantの導入から書きたいと思います。 ま

    [Tool] PNGの圧縮をコマンドラインから実行できるpngquantを使って右クリックから簡単画像圧縮を行う - YoheiM .NET
  • [PHP] PHPでJSONオブジェクトを扱うには - YoheiM .NET

    こんちには、@yoheiMuneです。 今日は、PHPにおいてJSONオブジェクト(JavaScript Object Notation)を扱う方法について調べたので、 ブログに残しておきたいと思います。 最近のWebサービス(RESTなど)では、JSONオブジェクトを返すサービスが増えよう思います。 JSONについての詳細は、こちら(http://www.json.org/json-ja.html)を参照ください。 JSONはJavaScriptのオブジェクト形式は、XMLに加えて同じ情報を少ないデータ量で伝えることが出来るので、 最近は大注目です!! 写真:ワット・プララーム PHPの事前設定 PHPでJSONオブジェクトを扱う際に、PHP5.2.0以上であれば特に事前設定は必要ありませんが、 それ以前のバージョンの場合には、「php-json」を組み込む必要があります。詳細は、以下を

  • [XCODE] UIWebViewを用いる際にUserAgentを独自に設定する方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 UIWebViewベースのiPhoneアプリ開発をバリバリ行っています(*´∇`*) UIWebViewで表示した際に、UserAgentを独自のものに上書きする設定をブログに書きたいと思います。 UIWebViewでUserAgentを上書きしたい理由 最近はWebViewベースのアプリケーションを開発しています。 アプリケーションの内容を表現する媒体として、iPhoneUIWebView、AndroidのWebView、各スマホのSafariやブラウザを利用者が選択できるように設計しています。 表現する媒体は違うものの、表現する仕組みは、HTML+JS+CSS+サーバーサイドで構築するようにして、表現部分のみを切り替えることで、開発を効率化するようなアーキテクチャです。 この設計を用いた場合に、iPhoneUIWebViewだけで独自の振る舞

    [XCODE] UIWebViewを用いる際にUserAgentを独自に設定する方法 - YoheiM .NET
  • [JavaScript] onloadイベントより早いタイミングで実行されるDOMContentLoadedイベント - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、javaScriptのイベントの一つであるDOMContentLoadedイベントを学んだので、 それについてブログを書きたいと思います。 DOMContentLoadedイベントについて JavaScriptをページ初期表示時に実行する場合に、loadメソッドを使うことが多いかと思います。 (私はそうでした) window.addEventListener("load", function(){ // 初期表示時の処理を書く }, false); 初期表示時にJavaScriptを動かすなら、loadイベントとあまり考えずに使っていました。 けど、DOMContentLoadedイベントというものがあることを今日知りました。 DOMContentLoadedイベントは、HTML解釈終了時に呼び出されるイベント onloadイベントは、画像ロ

    [JavaScript] onloadイベントより早いタイミングで実行されるDOMContentLoadedイベント - YoheiM .NET
  • [XCODE] UIWebViewでJS -> Native、Native -> JS連携を行う方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はiPhoneアプリでWebViewベース開発する際のTipsの1つ、JS・Nativeのそれぞれの機能を呼び出す方法をブログに書きたいと思います。 UIWebViewでJSとNative連携をするとは 最近のiPhoneアプリでは、UIWebViewベースで多くのコンテンツはHTML,JS,CSSで実装することもあるかと思います。 多くの機能はJavaScriptで実現しますが、時々Native機能(ダイアログなど)を使いたい場合があります。 また、Native上のボタンを押した際にJavaScriptの機能を呼び出したい場合があります。 そんな要望を実現する機能が、JS・Native連携です。 以下では具体的な実装内容を記載します。 JavaScriptから、iPhoneアプリのNative機能を呼び出す JavaScriptからNative

    [XCODE] UIWebViewでJS -> Native、Native -> JS連携を行う方法 - YoheiM .NET
  • [JS] タップイベントが実装されているのかを調べる方法(2つ) - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、スマホ向けサービスの開発で必要になる、タップイベントが実装されているかを調べる方法をブログに書きたいと思います。 Special Thanks to http://flic.kr/p/dP1Fjh タップイベントの実装有無を調べる理由 主にスマホ向けのサービスを作っている時に、以下のようなことをしたい場合がよくあります。 var EVENT = {}; if (/*タップイベントが使える場合*/) { EVENT.TOUCH_START = 'touchstart'; EVENT.TOUCH_MOVE = 'touchmove'; EVENT.TOUCH_END = 'touchend'; } else { /*タップイベントが使えない場合*/ EVENT.TOUCH_START = 'mousedown'; EVENT.TOUCH_MOVE

    [JS] タップイベントが実装されているのかを調べる方法(2つ) - YoheiM .NET
  • [JS] Youtubeをサイト内で再生させるYoutube APIの使い方。スマホにも対応させる。 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、JavaScriptを用いて、サイト内でYoutubeの動画を再生する方法をブログに書きたいと思います。 Youtube APIを使う Youtubeには、外部プログラムからデータを再生したり検索したりする為のAPIがいくつか用意されています。 Player API: AS3 Flash(ActionScript3)でYoutubeを再生する為のAPI Player API: JavaScript JavaScriptでYoutubeを再生する為のAPI。ブラウザはFlash環境が必須。 Player API: iframe iframe + JavaScriptを用いたAPI。ブラウザはFlashかHTML5 Videoのどちらかが必要。 Data API Youtube内の動画検索や関連動画取得などの情報取得用API 今回はiPhone

    [JS] Youtubeをサイト内で再生させるYoutube APIの使い方。スマホにも対応させる。 - YoheiM .NET