超とりあえず、現在地をシェアするiPhoneアプリをXcodeとDelphi XE5で作って比べてみた

超とりあえずですが、現在地をシェアするiPhoneアプリをXcodeとDelphi XE5で作って比べてみました。

実際に作っている動画がこちら

Xcode で作ってみる

Delphi XE5 で作ってみる

ソースコード

動画の途中で出てきたコードです。
コピペ用においておくだけなので、多くを求めないでください・・

Xcode

[code lang=’cpp’] #import #import
#import

@interface ShareLocationViewController : UIViewController
{
IBOutlet MKMapView *myMapView;
CLLocationManager *myLocationManager;

IBOutlet UIButton *myShareButton;

}

– (IBAction)tappedShareButton:(id)sender;

– (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
myMapView.showsUserLocation = YES;

myLocationManager = [[CLLocationManager alloc] init];
myLocationManager.delegate = self;

myLocationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
myLocationManager.distanceFilter = 100.0;
[myLocationManager startUpdatingLocation];

}

#pragma mark – Location Manager
– (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
MKCoordinateRegion region = myMapView.region;
CLLocation *newLocation = [locations lastObject];
region.center.latitude = newLocation.coordinate.latitude;
region.center.longitude = newLocation.coordinate.longitude;
region.span.latitudeDelta = 0.01;
region.span.longitudeDelta = 0.01;
[myMapView setRegion:region animated:YES];
}

#pragma mark – UIButton
– (IBAction)tappedShareButton:(id)sender
{
SLComposeViewController *controller;
controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
[controller dismissViewControllerAnimated:YES completion:nil];
};

controller.completionHandler = myBlock;

[controller setInitialText:@”現在地をシェアします!”];
[self presentViewController:controller animated:YES completion:nil];
}
[/code]

Delphi XE5

[code lang=’delphi’] , System.Sensors

procedure TForm1.LocationSensor1LocationChanged(Sender: TObject;
const OldLocation, NewLocation: TLocationCoord2D);
var
URLString: String;
begin
URLString := Format(
‘https://maps.google.com/maps?q=%s,%s&output=embed’,
[Format(‘%2.6f’, [NewLocation.Latitude]), Format(‘%2.6f’, [NewLocation.Longitude])]);
WebBrowser1.Navigate(URLString);
end;

ShowShareSheetAction1.TextMessage := WebBrowser1.URL;

[/code]

思う事

確かに Xcode による開発は、Apple 純正の開発環境でもあり、必ず最新機能を利用できるメリットがあります。

しかし、ストーリーボードに配置したコントロールを扱うための変数をヘッダーファイルに用意したり、それをバインドしたりする必要があるのは正直面倒に感じました。

対する Delphi XE5 による開発は、RAD と言うべく表示画面とコードの関係がスッキリと分かりますね。

まとめ

自分には、使い慣れていることを前提にしても開発効率は Delphi の方が良いと思いました。
また、今作ったコードが Android に転用できるのも企業として大きなアドバンテージです。

と言う事で、自分の iOS の開発環境は Delphi で変わらないでしょう(笑)

え?Webサイトのバックアップ、してないの!?

いざという時には復旧までしてくれる
『ワードプレス外部バックアップサービス』

■3つの特長
・自分でやらなくて良い
・いざという時の復旧付き
・外部サーバーにバックアップ

コメントを残す