-1

さて、私は一般的にコーディングを始めたばかりです。ウェブサイトからデータを取得する基本的な写真情報を使用してiOSソーシャルアプリを作成しようとしています(Flickrクローンのようなものです)

したがって、メインのWebサイトはRubyonRails上に構築されます。

編集 :

わかりました。誰かが写真をアップロードするタイミングを知りたいのですが、次のエントリがあります。*名前*撮影者*場所

私はgemlogtrend(https://github.com/gorsuch/logtrend)について調査していましたが、場所を使用してある種のトレンドフィードを作成できるかどうか疑問に思いました。

例:ユーザーは、トレンドの写真を表示するタブを選択します(近く(コアの場所に基づく)??そのようなことはできますか?

4

3 に答える 3

0

利用できるいくつかの宝石は、ソーシャルログイン/認証用のOmniAuthと組み合わせたDeviseです。

カテゴリ別のその他の宝石については、 RubyToolboxをご覧ください。

幸運を祈ります!

于 2012-11-27T22:10:44.717 に答える
0

これは、Ruby on Railsで実現できますか?

はい、そうです。

どの宝石を使うべきですか?

アプローチと機能セットによって異なります。

また、IOSアプリにフィードするAPIを作成するために使用できるgemはどれですか?

APIとは何かを誤解していると思います。APIは、クライアントがホストと対話する方法です

JSONを使用してIOSアプリとWebアプリの間で通信することを検討することをお勧めします。IOSとRuby/RailsはどちらもJSONをサポートする能力が非常に高く、比較的軽量です。

また、 Webアプリとの対話が必要な場合にIOSアプリケーションが実行することを詳細に定義する必要があります。

  • IOSアプリ(IA)は、画像をWebアプリ(WA)に保存します。
  • IAは同じ画像をWAに保存する場合があります(上書き)
  • WAがいっぱいかどうかIAに通知されます
  • IAはWAにログインします
  • IAはWAからログアウトできます
  • IAはWAでパスワードを変更できます
  • WAは、ログインしていないIAからのコマンドを拒否します
  • IAはWAからユーザーの写真を取得できます
  • IAはWAから他のユーザーの写真を取得できます

次に、それぞれについて、その機能をサポートするAPIを設計します。

于 2012-11-27T22:11:03.913 に答える
0

Ruby on Railsについては何も知りませんが、あなたがやろうとしていることを実行することは知っています(ユーザーが自分の名前とGPS位置を含む写真をサーバーにアップロードし、他のユーザーがその写真をダウンロードして表示できるようにします)彼らのアプリに)。

サーバーを構築する1つの方法は、RubyonRailsを使用してWebサービスを構築することです。

Webサービス

Webサービス(サーバー)は2つのことを行います。

1)リクエストを受け入れる

2)応答を返す

Webサービスでは、HTTP POSTまたはGETリクエストを受け入れると、サーバーのロジックコードがPOSTまたはGET内の「パラメーター」または「変数」を解析します。

サーバーがこれらの変数を取得すると、それらをデータベースに保存できます(ORMを使用すると非常に簡単になります)。

Webサービスは、HTTPステータスコードまたはJSON形式の応答を使用して応答を返すことができます。

シナリオ例

1)iPhoneアプリが写真を撮り、 ASIHttpRequestまたはAFNetworkingを使用してRubyサーバーにHTTPPOSTリクエストを送信します。

// ASIExample
-(void)uploadPhotoToServer
{
    NSURL *url = [NSURL urlWithString:myUploadWebServiceURL];

    __block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    // ---------------------------------------------------------------
    // setting the POST parameters below
    // note: you will need to get the NSData from a UIImage object
    // ---------------------------------------------------------------
    [request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];
    [request setPostValue:fldName.text forKey:@"name"];
    [request setPostValue:[NSNumber numberWithDouble:myLatitude] forKey:@"latitude"];
    [request setPostValue:[NSNumber numberWithDouble:myLongitude] forKey:@"longitude"];

    [request setCompletionBlock:^{
        int statusCode = [request responseStatusCode];

        if(statusCode == 200)
        {
            [self alertUploadComplete];
        }
    }];

    [request setFailBlock:^{
        NSLog(@"Server error: %@", [[request error] localizedDescription]);
        [self alertConnectionProblem];
    }];

    [request startAsynchronous];
}

2)サーバーはリクエストを受信し、データを解析してレスポンスを返します

// Symfony Web Framework example (PHP based web framework)
public function uploadPhotoAction()
{
    // --------------------------------------------------
    // check to make sure all POST parameters are sent 
    // in the POST request by iPhone app.
    // --------------------------------------------------
    if(
        !isset($_REQUEST['name'] 
        || !isset($_REQUEST['latitude']
        || !isset($_REQUEST['longitude']
        || !isset($_REQUEST['photo']
    )
    {
        return new Response($this->sendResponse(406, 'Missing POST parameters');
    }
    else // assumes safe to continue
    {
        /* 
            write code to save the your name, latitude, longitude to your database here 
        */

        /* 
            save your photo to your server's dedicated photo folder, then store
            the file path to the file in your database entry in the above step
        */

        return new Response($this->sendResponse(200, 'Photo uploaded'));
    }
}
于 2012-11-28T02:37:39.153 に答える