[Three20][Nimbus] Porting Three20 to Nimbus for Facebook Photo Album

This article is a record to summarized my project to migration from Three20 to Nimbus.

Here is specific step by step to help you porting (migrate) your three20 

Original project is a Facebook photo album which implement base on http://www.raywenderlich.com/1430/three20-tutorial-for-ios-how-to-use-the-three20-photo-viewer

  • Add Nimbus in your project

    • Sync code

      • git clone https://github.com/jverkoey/nimbus.git

      • Goes to nimbus path

      • git submodule init

      • git submodule update

    • Include nimbus code in project

      • Core

      • Photos

      • Paging Scroll View

      • Models

      • Overview

    • Include Thirdparty in your code

      • JSONKit

        • remember to add “-fno-objc-arc” on Targets -> Build Phase -> Compiling Phase to disable ARC compiling
      • AFNetworking

    • Add framework

      • libz.dylib

      • MobileCoreServices.framework

      • SystemConfiguration.framework

      • CFNetwork.framework

    • Add those three include in your pch

    #import “NimbusCore.h”

    #import “NimbusPhotos.h”

    #import “NimbusModels.h”

  • Remove original Three20 project

    • Remove all Three20 xproj in your framework.
  • Replace using to replace TTPhotoViewController to FacebookPhotoAlbumViewController

    • Remove photo.h Photo.m

    • Remove PhotoSet.h PhotoSet.m

    • Remove PhotoViewController.h PhotoViewController.m

    • Drag NimbusPhotos.bundle from src/photos/resources into your project.

    • Add follow file into your project

      • NetworkPhotoAlbumViewController.m NetworkPhotoAlbumViewController.h

      • FacebookPhotoAlbumViewController.m FacebookPhotoAlbumViewController.h

      • CaptionedPhotoView.m CaptionedPhotoView.h

    • Replace PhotoSource related code to follow direct using album ID

    LikePersonAlbum *myEntity = [_fetchResultControllerobjectAtIndexPath:indexPath];

 

    Class vcClass = [FacebookPhotoAlbumViewControllerclass];

    id initWith = _Facebookalbum_id;

    NSString* title = @”test1”;

    UIViewController* vc = [[vcClass alloc] initWith:initWith];

    vc.title = title;

    [self.navigationControllerpushViewController:vc animated:YES];

  • Done, less than 2 hours.

Advantage

  • Fast, easy to porting your code to source version control without any setting.

  • Compiler time reduce a lot. (Really~~~  a lot)

TODO:

  • According to Nimbus “Three20 migration Guide”,  we should use NIToolbarPhotoViewController. Will check it later.

[iOS][XCODE] 重灌Mac Air所帶來xcode相關重新設定

[MacAir] 開不了機 並且遇到 硬碟無法維修

最近也不知道是不是有3C瘟疫
每個周邊的3C商品都開始壞掉
從我的PS3玩到壞掉之後~接下來出現問題竟然是我去年買的Mac Air 2012年中版
(搭配IVB的版本)

依照以下的方式來準備排除方法
排除方法 http://ios.niufangjian.cn/post/3fadb_12debe
最後發現都不行,於是我不得不重新format —> 殘念

重灌好之後,由於有dropbox,evernote還有最重要的Chrome的幫助下,其實重新復原很快的

接下來會希望把所有跟xcode設定還有SDK有關全部放入dropbox之後也方便(也有version control)

參考文章:

 

[PS3]死亡黃燈,換一台新的PS3

最近我的80G胖PS3 玩遊戲玩一下子就會出現逼逼逼後閃紅燈當機
一開始只要修復硬碟後就可以繼續玩
後來只要一進入光碟遊戲就會逼逼逼閃紅燈當機

爬過ptt 跟 01 發現似乎是沒有退路的方法
所以也開始在網路上找新的主機
但是就在備份遊戲資料的時候
我發現其實只要是玩硬碟裡面遊戲
就完全沒有問題~ 但是一玩光碟片遊戲馬上出問題
後來加入PS+ 順便備份存檔跟下載幾個遊戲來確認

雖然沒有問題~不過大家還是建議我說~很有可能會發生一樣的問題

思考過後

我決定買新的PS3 250G (巴哈有綁送戰神一片)~

原因如下:

  1. 比較省電 根據Wiki PS3 spec 平均用電是 130W -> 70W
  2. 新製程比較不擔心有問題(官方保固一年)
  3. 有些東西可以賣來分攤成本

7880 (PS3 250G+戰神)

  • 1250 (全新搖桿)
  • 250 (HDMI)
  • 700 (戰神如果賣二手)
  • 500 (原主機殺肉價)

    5180

雖然比起維修2500 貴上一倍~但是想到可以玩的高枕無憂
還可以增加容量從 80G -> 250G

好期待新的主機….

[IOS] 利用JSON的方式連接Google Drive上的Spreadsheet

在自學iOS程式的途中,總算需要一些server上的資料了,但是其實也只是要讀一些資料罷了 在需求相當的簡單之下,也曾經去尋找過CSV甚至是找個地方把資料寫成JSON硬讀 不過由於要能方便的修改,所以似乎使用Google Drive上面的Spreadsheet是最簡單最方便的方式

主要參考文章如下:

流程如下:

主要程式都是參考 iOS中NSJSONSerialization解析JSON数据暨google地理信息处理案例

-(void)parseJson
{
//The URL of JSON service
//NSString *_urlString = @"http://maps.googleapis.com/maps/api/geocode/json?address=nanjing&sensor=true";
NSString *_urlString = @"https://spreadsheets.google.com/feeds/list/0Artq5Bi16cQedE5mU21kdkJBWUtPU01XbS1uNW5JbEE/1/public/values?alt=json";
NSString *_dataString = [[NSString alloc] initWithData:[_urlString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding];

//_dataString=[NSString stringWithUTF8String:[_urlString UTF8String]];

NSURL *_url = [NSURL URLWithString:_dataString];
NSMutableURLRequest *_request = [NSMutableURLRequest requestWithURL:_url];
[_request setValue:@"accept" forHTTPHeaderField:@"application/json"];
[NSURLConnection sendAsynchronousRequest:_request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse* response, NSData* data, NSError* error) {
//block define statment
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;

int responseStatusCode = [httpResponse statusCode];
NSLog(@"response status code is %d",responseStatusCode);

NSError *_errorJson = nil;

NSDictionary *resultsDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

if (_errorJson != nil)
{
NSLog(@"Error %@", [_errorJson localizedDescription]);
}
NSDictionary *resultDicFeed = [resultsDic objectForKey:@"feed"];
NSArray *resultsArryEntry= [resultDicFeed objectForKey:@"entry"];
for (NSDictionary * resultDetailDicAll in resultsArryEntry)
{
NSDictionary *resultsDicID=[resultDetailDicAll objectForKey:@"gsx$id"];
NSString * dataID=[resultsDicID objectForKey:@"$t"];

NSDictionary *resultsDicName=[resultDetailDicAll objectForKey:@"gsx$name"];
NSString * dataName=[resultsDicName objectForKey:@"$t"];

NSDictionary *resultsDicDesc=[resultDetailDicAll objectForKey:@"gsx$description"];
NSString * dataDesc=[resultsDicDesc objectForKey:@"$t"];
}

}];
}

如果你有其他欄位名稱~記得把欄位gsx$id gsx$name  gsx$description 改成你的欄位值….

[Build 2013] Summary MSFT build 2013 (Win 8.1) -- Keynote

http://channel9.msdn.com/Events/Build/2013

First section:

  1. Start button is back, but not easy to use …
  2. Win8.1 connect to XBoxOne, not surprise… But XBox Music? Why not call XboxPhoto and XboxMovie haha..
  3. New multiple monitor (8 split windows on two monitor..)
  4. Oh~~~~ everyone who attend this build got new tablet (like last year) 

Section two: VS2013 and others

  1. Async debugging becomes easier on 2013 IDE. Great!
  2. WebGL seems powerful
  3. Windows App Store also have auto update….
  4. DPI-Aware present on keynote…   It become more important for 3K or 4K monitor…
  5. Robot on Win8.1, mmmmm How about Romo
  6. Tablet overview .. skip, NB overview .. skip.   SurfacePro what? skip..

Section three:

  1. Bing support voice search.. looks great…  but…
  2. Project Spark is fancy game which like mine craft ….. 

Final 60 sec summary video for Win8.1, it seems tell everything XDDDD…..