ブログ

スマホアプリの外注ってどれくらいかかるの?

こんにちは、花井です。 アプリケーション制作依頼をすると、どれくらいの料金がかかるのでしょうか? このような質問を受けることはとても多いです。 結論から言うととても高いです。 例えば病院予約サイトなどどんなに安く見積もっても2,3百万円はするかと思います。 どうしてそんなに高くなってしまうのでしょう? アプリ制作費用の見積もり方法 スマホアプリでもウェブアプリでもアプリケーションはプログラミングコードと写真などの素材でできています。 プログラミングは、コードを書けるエンジニアがいれば仕入れはいりません。 つまりアプリケーションは エンジニアの人件費 + 素材の料金 で出来ています。 エンジニアの人件費はどのように決まるかというと「プロジェクトの手間や難易度」で決まります。 手間がかかるほど必要となるエンジニアは増えますし、難易度が高ければ外注したり、学習費用もかかります。 このようにエンジニアの手間でアプリケーションの費用が決まることが多いため、プロジェクトの見積もりの算定にはエンジニアの人数に換算して 「○人月」と表現して見積もりを行います。 例えば10人月のアプリケーションの見積もりなら一人のエンジニアが10か月で制作できるという意味です。 2人のエンジニアだと5か月ですね。 では1人月はいくらなのか?!というわけです。 ある程度会社によって単価が違いますが、大体100万円ほどのところが多いようです。 高っか!!! と、思った方もいるかと思います。 しかし最近のエンジニアの給料はとても高く1人月が100万円でも安いくらいです。 どのくらいのプロジェクトが1人月なのか? 1人月が100万円とすると、どのくらいの機能を持ったプロジェクトが1人月なのでしょうか? これは細かいところまで詰めるととても大変ですが、以前制作した事例で説明します。 パーソナルトレーナーズウェイトトレーニング ウェイトトレーニングの記録を取ることによって体重や重量の変化をグラフ化し分かりやすくします。 参考はこちら http://personaltrainerjapan.jp/weighttraining/ このiPhoneアプリの機能と人月は iPhoneアプリ全般機能と申請など 半週間 グラフ化など処理 一週間 バックアップ処理 半週間 アプリ紹介ウェブサイト 一週間 写真などの素材 5万

APIって何?非エンジニア向け用語説明

「あれ?APIってもともとなんだっけ」となったためちょっとわかりやすくまとめました。 非エンジニア向けの説明ですので細かいところまで突っ込まず、マネージャーやデザイナー、またはクライアントに説明することを想定して書いてあります。 「簡単なことを簡単に理解する!」それがこの記事のゴールです。

Parseでfacebookログインしてみる。x-Code,objective-c編②

Parseでfacebookログインしてみる。x-Code,objective-c編第2弾です。 前回のFrameworkや設定の話はこちら。 Parseでfacebookログインしてみる。x-Code,objective-c編① x-codeで書いていきましょう。 xcodeでごりごり まずはParseとFacebookの下準備が必要ですのでAppDelegateに書いていきます。 #import <Parse/Parse.h> #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h> #import <PFFacebookUtils.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ; ; ; ; ; return application:application didFinishLaunchingWithOptions:launchOptions]; } -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return

Parseでfacebookログインしてみる。x-Code,objective-c編①

今回はParseでfacebookログインする方法を書き留めておきます。 Parseって何? まずParseとはmBaaS(mobile backend as a service)の頭文字をとったもので、バックエンドサービスやプッシュ通知などのバックエンドサービスを便利なAPIを使って簡単?に実装することができるサービスです。 mBaaSは国内でもNIFTY Cloudなどのサービスはありますが、今回は一番有名なParseを使ったサービスを実装します。 今回はfacebookログインをします Parseのサービスはいろいろありますが今回はfacebookログインを実装します。 開発環境 x-code6.3.2 FacebookSDKs-iOS(CoreKit-v4.2.0,LoginKit-v4.2.0,ShareKit-v4.2.0) iOS8.3 Parse SDK for iOS v1.7.4 CocoaPods 出来上がり 今回の出来上がりはlogInをログに出して、Parse側でユーザー登録を確認するところまでをやります。 Parseの準備 まずはParse側の準備です。 Parseで登録をして、Parse側と連携できるようにします。 Parse.comはこちら Parse側のFrameworkをx-codeにぶち込んで連携してください。やり方はParse.comのgetting startで簡単にできるので詳細は省きます。 今回はframeworkをCocoaPodsを使って管理しますので、podfileにParseのframeworkを書きます。 またFacebookのSDKも必要なので一緒に入れておきましょう。 こんな感じですね。 target 'testapp' do platform :ios, "8.0" pod 'Parse', '~> 1.7.4' pod 'ParseFacebookUtilsV4', '~> 1.7.0' pod 'ParseUI', '~> 1.1.4' pod 'ParseCrashReporting', '~> 1.7.4'...

iOSでFacebookLoginしよう!もちobjective-cでね。②

iOSでFacebookLoginしよう!もちobjective-cでね。の第二回です。 前回はこちら。iOSでFacebookLoginしよう!もちobjective-cでね。 ではXcodeを開いてゴリゴリと書いていきましょう。 お楽しみのハードコーディング まずはAppDelegateで下準備が必要です。 AppDelegate.m #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ; return application:application didFinishLaunchingWithOptions:launchOptions]; } - (void)applicationDidBecomeActive:(UIApplication *)application { ; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } を追加します。 次にviewControllerに書いていきます。 //viewController.h #import <FBSDKLoginKit/FBSDKLogin

iOSでFacebookLoginしよう!もちobjective-cでね。

iOSアプリを作るならFacebook Loginをしたい!そんな風に思うのは僕だけですか? 今回はFBSDKを使って簡単にiOSアプリと連携する方法を説明します。 環境 x-code6.3.2 FacebookSDKs-iOS(CoreKit-v4.2.0,LoginKit-v4.2.0,ShareKit-v4.2.0) iOS8.3 結果 こんな感じにfacebookでログインして情報を取得する感じです。 ログインへの道 FacebookSDK関係をゴニョゴニョ X-codeの設定をイジイジ コードをゴリゴリ の3ステップで構成されています。 FacebookSDKやらその周辺 まず、Facebookのアカウントは持ってますよね。けれどそれだけでなくFacebookの開発者登録をする必要があります。 開発者登録については詳細は省きます。 開発者登録を済ませたら、アプリ別の識別のためにMyAppを取得します。 My Appの設定 ここからFacebookデベロッパーのページへ行けます。 次に詳細設定。 この辺は適当に記入してください。テストではなく、カテゴリーはユーティリティーにしました。 作成したらセッティングのところでアプリの設定をします。 add Platformで アプリ情報を追加。 で、上図の右上のQuick StartとクリックするとSDKのインストール画面へ行きます。 SDKをインストールandビルド SDKをインストールしてビルドします。 ビルドするとCoreKit-v4.2.0,LoginKit-v4.2.0,ShareKit-v4.2.0が生成されるのでX−codeへぶっこみましょう。 それから info.plistを開いてこんな感じにゴリゴリです。 FacebookAppID →さっき作ったAPPのID(例1234) FacebookDisplayName→さっき作ったDisplayName Item→fbとFacebookID(例fb1234) こんな感じでFacebookSDKとXcodeの設定はOKです。 さぁお待ちかねのハードコーディングの時間です。が少し長くなってしまったので第2回に続きます。 iOSでFacebookLoginしよう!もちobjective-cでね。②へ  

i-Phoneナビアプリを作れる。MKDirectionsの簡単な使い方

簡単なナビアプリデモを作った時にMKDirectionsを使用したので簡単に備忘録として書きます。 MKDirectionsは出発地点と到着点を設定すれば簡単にナビアプリを作ることができます。 まずは出発点と到着点の座標をCLLicationCoordinate2Dで作成します。 CLLocationCoordinate2D fromCoordinate = CLLocationCoordinate2DMake(_fromPlaceLuti, _fromPlacelon); CLLocationCoordinate2D toCoordinate = CLLocationCoordinate2DMake(_toPlaceLuti, _toPlacelon); 次に作成したCLLocationCoordinate2Dを設定してMKPlaceMarkを作成します。 MKPlacemark *fromPlacemark = initWithCoordinate:fromCoordinate addressDictionary:nil]; MKPlacemark *toPlacemark = initWithCoordinate:toCoordinate addressDictionary:nil]; MKPlaceMarkからMKMapItemを作ります。 MKMapItem *fromItem = initWithPlacemark:fromPlacemark]; MKMapItem *toItem = initWithPlacemark:toPlacemark]; MKItemをセットしてMKDirectionRequestを作成します。 MKDirectionsRequest *request = init]; request.source = fromItem; request.destination = toItem; request.requestsAlternateRoutes = YES; MKDirectionRequestからMKDirections

iOS8で現在地取得の備忘録CoreLocation設定

iOS8で現在地取得する時に変更があり、少し手間取ったので備忘録です。   info.plistに追加 LocationManagerの呼び出し iOS8で現在地情報を取得するには info.plistに追加 NSLocationWhenInUseUsageDescription(使っているときは位置情報教えてよ)もしくはNSLocationAlwaysUsageDescription(いつでも位置情報教えてよ)で位置情報取得前にユーザーに使用許可をもらう必要があります。 そこで許可をもらうアラートを出す必要があるのですが、それをinfo.plistに書いておきましょう。と言うより強制です。 書かないで呼び出してたら怒られます。 info.plistの追加ですが。一覧には出てこないので、一文字も間違えずに書いてください。 次にCoreLocation側の設定です。 CoreLocationの設定 まずCoreLocationインスタンスを生成します。もちろんCoreLocationもimportします。 #import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController<CLLocationManagerDelegate> @property(nonatomic)CLLocationManager *Manager; @end   次にDidViewApperで位置情報許可を要請してください。ViewDidLoadではなぜか出来ません。 -(void)viewWillAppear:(BOOL)animated{ //corelocationAllowed _Manager = init]; if () { ; } } コードは使用中は位置情報欲しいよのrequestWhenInUseAuthorizasionです。 呼び出して、許可をしたらもうOKです。 あと

チームって難しいけれど面白い

  全然更新していないのですが今日はチームについていろいろ思うことを書きます。 約2年前からプログラミングの勉強を始めて、色々試したり、勉強会に行ったり、サボったりしている間に気の合う仲間とチームを組んで開発を行うことになりました。 なりましたと言うより最初からチームでやることを目指しているわけですが。 僕がチームを組むときに大切にしていることは、気が合うことです。何をするかよりも誰とするか。気が合うとはただの仲良しではなく、成功よりも失敗を共有できる仲間であることが大切だと思います。 失敗を共有できる 「失敗を共有できる」これは非常に大切なことだと思います。 なんか失敗したね…っていうよりも、一生懸命やったけれどどこが悪かったんだろう?こうゆうやり方もあったよね。次はこんなやり方も試してみたいと言う感じです。 言い換えれば失敗を通じてお互い高めあうことが出来ることです。 事業をやっていると失敗はつきものです。そもそも失敗しない挑戦などありません。 成功するまで挑戦できるか。成功するためには失敗できる環境、失敗から学べる姿勢が必要です。 失敗するつもりで事業を行うわけではありませんが、失敗はつきものとして前向きにとらえる必要があるのです。 一緒に行う仲間とはこのような失敗のとらえ方をしたいです。