iOS䞊のDcoin ...およびKatya。 ファむナル





PHPからGoに移行した私の経隓に関する䞀連の蚘事の最埌の郚分。



最初の郚分 、 2番目 、 3番目 、 4番目 。



4.5幎前、私はこのビゞネスに完党に䞍適切な蚀語、぀たりPHPで暗号通貚を曞き始めるのは無謀でした。 結局、私は曞きたした私は頑固ですが、束葉杖で束葉杖を手に入れたした。それが䞀般的に機胜するずいう事実は、ある皮の魔法でした。



私はすぐにあなたに譊告したいず思いたす、私は独孊のプログラマヌで、半孊歎のあるプログラマヌです、そしお、それを穏やかに蚀えば、コヌドを曞くこずは理想的ではありたせん。



それはすべお、私がカティアずいう名前の女の子ず別れ、同じ日に2015幎4月4日Goを勉匷しお暗号通貚を曞き換えるこずにしたずいう事実から始たりたした。 ネタバレの䞋でカティアに぀いお曞くこずはできたせん。 Habrは今でもIT蚘事のためであり、ラブストヌリヌのためではなく、Goテヌマに興味のある厳しいITの人々は、「カティアに぀いお」ず「マヌシャに぀いお」ずいうネタバレに泚意を払っおいないかもしれたせん。



8か月の結果アプリケヌションは、 Win、OSX、Linux、FreeBSD 、 Android 、 IOSで実行されたす



合蚈コヌドは玄73k行で、異なるOSのコヌドは数癟行皋床です。



40k-凊理/ブロック生成/ tr-17、17.5k-むンタヌフェむス甚コントロヌラヌ、15.5k-テンプレヌト。



PostgreSQL、SQLite、MySQLがサポヌトされおいたす。



私の䜜品をテストする人に譊告したす-バグがあるかもしれたせん。時間があれば、 darwin @ dcoin.clubたたはハブのPMでそれらに぀いお曞いおください。 提案やアドバむスも歓迎したす。



最初の4぀のパヌトでは、Webサヌバヌがdcoinでどのように機胜するか、 html / template 、デヌタベヌス、スムヌズなアプリケヌション完了、ブロックの暗号化ず解析、Androidアプリケヌションに぀いお説明したした。



このパヌトでは、iOSでのコンパむルに぀いお説明したす。



開始する



最初の困難は、開発者の蚌明曞を持っおいなかったこずです。 そしお、それなしでは、アプリケヌションのコンパむルは機胜したせんでした。 たた、MacもiPhoneも持っおいたせんでした。 3日目、圌はvirualboxにosxをむンストヌルするのに忙しかったので、vmwareにのみむンストヌルし、コン゜ヌルで動䜜するためにvirtualboxでネットワヌクをセットアップするこずができたした。



私の幞運なこずに、Xcode 7では、誰でも䜜成できる無料の蚌明曞を䜿甚しおアプリケヌションをコンパむルする機䌚があるこずがわかりたした。 そしお、iPhone 4sは非垞に時間通りに貞しおくれたした。 開発に没頭するこずは可胜でした。



Katyaに぀いお
前の郚分

私はVKで圌女に手玙を曞き、圌女は家で遺䜓を忘れおいたず蚀いたした、そしお今、圌女には友人がいたした。 私は圌女を埅぀ず曞いた。 その埌、圌は「再び私に電話したり曞いたりしないでください!!!!」を受け取りたした。 質問はしたせんでした。隣のアパヌトに電話し、カティアが家にいるずきに花を莈るように頌みたした。 圌は数時間埌にDcoin on Goを曞き換えるこずを決めた埌、家に着きたした。



数日埌、私は圌女に、数ヶ月間、自分のプロゞェクトに向かっおいるず曞いお、私に䜕も気にしないように頌みたした。



1週間埌、カティアから「こんにちは。 お元気ですか」 私は答えたせんでした。 1週間埌、別の「こんにちは」。 お元気ですか」 私は再び答えたせんでした。



箄1週間埌、圌女は緊急にTR 7が必芁だず曞いた 借金で、 圌女はアパヌトの代金を払うのに十分ではありたせん。 「OK」ず答えたした。 翌日、圌女は私の家に来たした。



私は圌女の頭に䜕があったのか分からない、おそらく私は圌女を困らせるだろうず思った。 䞀晩䞭、圌女はちょっず奇劙だった。 私は寒くお、圌女ずの接觊を避けようずしたした。 お茶を飲みたした。 カティアは家に垰る必芁があるず蚀った。 タクシヌを呌んだ。

圌が圌女をタクシヌに護衛するずき、圌は尋ねた



-私たちは䞀緒ではありたせんよね ぀たり やりたいこずはできたすか

圌女-「私が欲しいもの」ずいう意味では いいえ、私たちは䞀緒です私に近づきたす

私-さお、最初のデヌトはありたせんでした。最初からすべおを始めたわけではありたせん。

圌女-だから今だった。

私-なんおデヌトだ、お金のために来ただけだ。



私たちはすでにタクシヌのドアに立っおいたので、私は圌女を座らせ、ドラむバヌに支払い、圌女は去った。



朝、電話が鳎った、それはカティアだった。 私は電話を取りたせんでした。



翌日、圌女はテキストメッセヌゞ「こんにちは。 昚日電話したしたが、あなたは電話を取りたせんでした。」 私は答えたせんでした。



䞀週間埌、圌女はZPを受け取ったず曞いた そしお、私のカヌドにお金を投げたい。 䜕も答えたせんでした 数日埌、圌女は「こんにちは。 お元気ですか」 私は再び無芖したした。



箄1週間埌、぀いにノヌド䞊でDcoinを起動し、ブロックがどのように生成され、どのようにノヌド間を移動しおデヌタベヌスを満たすかを確認したした。 これは私の䞀時的な隠mitの終わりず考えられるように思えたので、カティアに手玙を曞きたした。



圌女は私が圌女ず連絡を取ったずいう事実に非垞に前向きに反応し、䌚うこずに同意した。 それから圌女は、気分が悪く、アパヌトを借りたガヌルフレンドず、ストレスのために毎日泣いたず蚀っお、蟞めるこずにしたした。 私たちが䌚うずき、私は圌女に私ず䞀緒に暮らすように申し出お、䜕も心配しないようにするず決めたした。


問題なくコンパむルしお起動したした。 ブラりザで開かれた...䜕もない。 しかし、その埌127.0.0.1のネットワヌクを介しお移動するず、8089がりォレットを発行したす。 ホヌムボタンを抌すず、アプリケヌションが䜕らかのスリヌプモヌドに入るこずが明らかになりたした。



アンドロむドずの類掚により、私はサヌビスを䜜るこずにしたした。 しかし、iosのサヌビスは䞍可胜であるこずがわかりたした。 実行できる最倧倀は、バックグラりンドで600秒間ハングするこずです。 それで、もちろん、それは論理的です-バッテリヌ充電の安党のための闘争。 䞀般に、iOSでのアプリケヌションが䞀般的にどのように機胜するかを調査する必芁がありたした。



Katyaに぀いお
その結果、カティアは来たせんでした。 再び蚀い蚳がありたした。 結局私を送り返すこずになりたした。 今回はすぐに出ないずは思いたせんでした 圌女が必芁だず感じたした。 しかし、カティアは私が去りたかったので、圌女を攟っおおかなければなりたせんでした。 そしお、二床ず電話したり、手玙を曞いたりしないこずを玄束したす。




Xcodeで簡単なアプリケヌションを䜜成し、電話で投げるず動䜜したす。 ファむル構造を掘り始め、同時にgomobileで䌌たようなものを探しお、 このファむルを芋぀けたした。 NSLogに぀いお孊び、圌が情報を提䟛する堎所を決定したした



アプリケヌションが衚瀺したログの行を芋たずきの喜びを思い出したす。 クヌルで、接続が確立されたので、簡単になりたす。 私にずっお、ログの曞き蟌みおよび読み取り機胜は、おそらくアプリケヌションを開発するずきに最も重芁なものです。



マヌシャに぀いお
再び、出䌚い系サむトやVKで女の子を探し始めたした。 私は自分が優れた肉䜓を維持しおいるこずを忘れおいたした。 フォヌム、ずしお 家にはたくさんのパンケヌキ、2぀のバヌ、ダンベルのハゲタカ、ベンチ、鉄棒がありたす。 そしお、私はすでに30歳以䞊ですが、20を䜕かで芋たす。かなり早く、私が奜きで、私ず䌚いたい女の子を芋぀けたした。


私はObjectve-Cを知りたせんでしたが、今では本圓に知りたせん。 しかし、少なくずも構文を理解しないず、䜕も機胜しないこずは明らかでした。 Objectve-Cに関するいく぀かのレッスンを読みたしたが、コヌドを理解しやすくなりたした。



バックグラりンドモヌドに぀いおGoogleで調べたずころ、このコヌドをdidFinishLaunchingWithOptionsに远加する必芁があるこずがわかりたした。

// UIApplicationBackgroundFetchIntervalMinimum -           [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
      
      





そしおinfo.plistに远加したす

  <key>UIBackgroundModes</key> <array> <string>fetch</string> </array>
      
      





Gomobileはそのinfo.plistを生成したす。 ここで倉曎できたす 。



マヌシャに぀いお
最初のデヌトでは10分遅れおいたが、マヌシャを芋たずき、すぐに「うわヌ、ラッキヌだ」ず思った。 私たちは公園を歩き回り、ボヌトに乗っおから、たんぱく質の食物を食べる必芁があるず蚀いたした。さもないず筋肉が成長せず、家に垰りたした。 鶏肉を食べた埌、映画を芋に寝宀に行きたした。 しかし、玄30分埌、圌女は家に垰る必芁があるず蚀いたした。 圌女はただ颚邪から完党に回埩しおいないずいう事実のために気分が悪い。 タクシヌを呌んだ。 マヌシャは去った。


webView



ブラりザですべおが機胜するずいう事実は確かにクヌルでしたが、ブラりザが開くずアプリケヌションがバックグラりンドになり、3分埌にクラッシュするため、これは3分間だけで十分でした。 webViewなしには方法はありたせん。 webViewを衚瀺するためにwebViewをどこにどのように挿入するかを理解するのにかなり時間がかかりたした。 GUIはありたせん。すべおをテキストファむルに曞き蟌む必芁がありたす。iOSの開発に慣れおいないため、私にずっおは非垞に困難でした。



結局、すべおがうたくいき、非垞にシンプルであるこずが刀明したした。



マヌシャに぀いお
それから、その週の間に、圌女は働いおいお、䌚う時間がないず蚀いたした、そしお、私たちは日曜日にのみ、そしお2週間埌より早くはお互いに䌚えたせんでした。 私は、圌女が仕事の埌にちょうど私のずころに来たず蚀いたした、私たちは近くに䜏んでいたす、そしお、週に䞀床私に䌚うのは私に合っおいたせん。 圌女は圌女が考えるだろうず答えた。

1日埌、圌女は倜、芋知らぬ男に行くのが怖いず曞いた。 私は圌女が行方䞍明だず思い、今週末に他の女の子ず付き合い始めようずしおいるず蚀いたした。 圌女は怒り、呪われたした。

翌日、SMSのためにゞョヌクを送信したした。「䞀日䞭、䞀日䞭、カルスの手だけでなく、ボヌトに乗りたす。」 圌女は冗談を理解しおいたせんでした、圌女はこれたで以䞊に怒っおいたした、圌女はこれが冗談だず​​説明しなければなりたせんでした、私は䞀日䞭家にいお、コヌドを曞きたした。


 - (void)viewDidLoad { //     3 ,  -   ,     . dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [NSThread sleepForTimeInterval:3.0f]; //        dispatch_async(dispatch_get_main_queue(), ^{ //   webView self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://127.0.0.1:8089"]]; self.webView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; self.webView.scrollView.bounces = NO; self.webView.scalesPageToFit = NO; self.view = self.webView; self.webView.delegate = self; [self.webView loadRequest:request]; }); }); [super viewDidLoad]; }
      
      







ViewControllerむンタヌフェヌスで、webViewを远加したす

 @interface ViewController : UIViewController<UIWebViewDelegate,UIScrollViewDelegate,UITextFieldDelegate> { IBOutlet UIWebView *webView; ..... } @property(nonatomic,retain)UIWebView *webView;
      
      





マヌシャに぀いお
1日埌、圌女は倜に私のずころに来る準備ができおいるず蚀いたした。 どうやらjeが恐怖を克服したようです。 正盎、ずおも驚きたした。 念のために、圌は、圌女が最初に始たらなくおも、私は圌女を煩わせず、ただ倕食を食べ、チャットをしお、就寝するず蚀いたした。


通知



「すべおがずおもシンプルなので、通知を行う必芁がありたす」ず私は思いたした。

Objectiv-CコヌドはGoで実装する必芁がありたした

 // +build darwin // +build arm arm64 package sendnotif /* #cgo CFLAGS: -x objective-c #cgo LDFLAGS: -framework Foundation -framework GLKit -framework UIKit #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import <GLKit/GLKit.h> void ShowMessM(char* title, char* text) { UILocalNotification* localNotification = [[UILocalNotification alloc] init]; localNotification.soundName = UILocalNotificationDefaultSoundName; localNotification.alertTitle = [NSString stringWithUTF8String:title]; localNotification.alertBody = [NSString stringWithUTF8String:text]; localNotification.timeZone = [NSTimeZone systemTimeZone]; localNotification.applicationIconBadgeNumber = 1; localNotification.repeatInterval = NSCalendarUnitMinute; [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; [localNotification release]; } */ import "C" func SendMobileNotification(title, text string) { C.ShowMessM(C.CString(title), C.CString(text)) }
      
      





マヌシャに぀いお
圌はタクシヌを圌女に送り、私に䌚い、私のずころに行き、倕食を食べ、映画を芋たした。 時間はすでに遅かったので、寝る必芁がありたした。 圌女はゲストの゜ファヌで寝るず蚀った 圌女は私ず同じベッドで準備ができおいたせん。 「たあ、いや、いや」圌は圌女の゜ファに暪たわった。 5分埌、圌女は入っお来お、これたで経隓したこずはないず蚀いたすが、本圓にやりたいず思っおいたす。 私にずっおは嬉しい驚きでした。 䞀般的に、私たちはその倜寝たせんでした。


Goコヌドでは、sendnotif.SendMobileNotification「タむトル」、「通知テキスト」を䜿甚したす

didFinishLaunchingWithOptionsに以䞋を远加する必芁がありたす。



 if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) { // iOS 8 Notifications [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [application registerForRemoteNotifications]; } else { // iOS < 8 Notifications [application registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; }
      
      





これにより、起動時にナヌザヌに通知を䜿甚するように求めるメッセヌゞがポップアップ衚瀺されたす。



マヌシャに぀いお
4日目に、私は圌女を私に匕っ越すよう招埅したした。 マヌシャは同意した。 圌女の寮に行き、物を運びたした。


おわりに



これで、PHPからGoに移行した私の経隓に関する䞀連の蚘事を締めくくりたす。 私の資料が誰かに圹立぀こずを願っおいたす。 Goでのクロスプラットフォヌム開発に぀いお質問がある堎合は、個人で曞いおください。



マヌシャずカティアに぀いお
数週間かかりたした。 倕方、私たちはマヌシャずベッドの䞊で暪になっお、むンタヌンを芋おいたす。 カティアは呌んでいたす。 酔っお 圌は誰にでも蚱しを求め、圌女は睡眠薬を飲み蟌んで数時間で死ぬず蚀いたす。 私は混乱し、䜕を蚀うべきか分かりたせんでした。 私は圌女がどこにいるかを調べ、譊察ず医者を圌女に送ろうずした。 それから圌は圌女の芪友に手玙を曞き、圌女が圌女の䜏所を䌝え、䜕らかの理由で圌女が䜏所を蚀いたかったので、カティアず緊急に連絡するようにした。 カティアは電話をかけ、バックグラりンドで酔った声を聞いた。 すべおが明らかになりたした、これはブラフです、圌女は圌女ず楜しんでいたす。 翌日、私はカティアが倧䞈倫だず確信したした。 圌女はオンラむンでした。

今、6ヶ月間、私はマヌシャず暮らしおいたす。 最近猫を飌った。





PS

Dcoinでは、無料のコむンを入手できるようになりたした数か月分のむンタヌネット代を支払うのに十分です。



All Articles