Facebook SDK for iOS now using Safari Web Controller to authenticate

Facebook SDK is one of the worst SDK I have implemented. They constantly changing their APIs on each version, and its driving me nuts as developer.

When you are using iOS9 with SDK 4.6+, you are no longer get fast-app switching. It will open the Safari instead. The bad thing with this behaviour is, user will need to enter his username and password again. This is one other reason not to use Facebook SDK anymore in my next project. Unless the client asked it.

I am not sure why we should put few of their URL Schemes on our plist file if they couldn’t use the fast-app switching. You may need to read this in detail on this Stackoverflow post.

Bye-bye Facebook SDK!

Seminggu di Kuwait

Kemarin saya baru sampe lagi di Malang, setelah kira-kira seminggu berada di Kuwait untuk mengurus ijin tinggal dan kerja keras. Ini adalah kunjungan kedua saya setelah resmi keluar dari Kuwait dan memulai hidup di Indonesia.

Nah loh?

Jadi menurut hukum Kuwait, ijin tinggal yang ada akan otomatis kadaluarsa ketika orang yang mempunyai ijin tinggal meninggalkan tanah Kuwait lebih dari 6 bulan terhitung sejak dia keluar. Dengan kata lain, untuk tetap mempunyai ijin tinggal di sana, saya harus hadir di Kuwait tiap 6 bulan sekali.

Dan kenapa saya masih saja kembali ke sana ketika sudah balik ke Indonesia? Yang ini panjang ceritanya. Dan tidak akan saya bahas di sini, karena judulnya adalah Seminggu di Kuwait. Hehe.

Yang berubah?

Tidak banyak perubahan yang bisa saya lihat. Tapi ada satu mall baru yang sudah selesai dan saya punya kesempatan melihat-lihat. Tidak ada yang menarik, semua tampak seperti mall seperti biasa. Kebiasaan dan perilaku orang arab juga sama saja. Tidak ada yang berubah sama sekali. Saya sungguh harus bersyukur tinggal di Malang.

Ada satu perubahan yang jelas kentara pada saya sendiri. Kini bahasa inggris saya mulai pudar karena jarang terpakai. Walaupun masih bisa ngomong dan masih lumayan lancar, tapi lebih sering keseleo. Ngomong masih tercampur dengan bahasa Indonesia, walaupun sedikit sekali. Cukup mengkhawatirkan, tapi gak apa-apalah.

Harga-harga?

Tinggal di Malang ini benar-benar membuat semua harga di luar Malang jauh terlihat lebih mahal. Ketika dulu saya tinggal di Kuwait dan pergi ke Istanbul dan Seoul, saya berpikir semua harga di sana terlihat lebih murah.

Dan selama setahun tinggal di Malang, saya melihat harga-hara di Kuwait sudah tidak lagi bersahabat dengan hati saya. Jangankan Kuwait yang sudah di luar negeri sana, dibanding dengan Jakarta saja saya sudah mikir beberapa kali.

Kesimpulannya, bersyukur saja saya tinggal di Malang. Tiap pagi bisa menikmati udara pagi yang sejuk sambil lari-lari cari keringat. Malamnya bisa keliling naik sepeda sekadar membeli sesuatu dengan harga yang sangat bersahabat.

Teringat ibu saya bertanya beberapa hari lalu, enak mana, tinggal di Malang apa Kuwait? Tentu saja, jawabannya enak di Malang!

Facebook Graph no longer give you friend list

Since the Graph API 2.0, you will no longer get the friend list of the user. For developer like me, this is bad move from Facebook. Sending me/friends to Graph API will give you a an empty data.

So, move on Developers, no need to use Facebook Connect anymore. Use Twitter or Instagram instead.

Twitter login on iOS with Social Framework

There are many library to get authentication with Twitter. Most of them using oAuth, and others don’t provide the easy access. As you might know, Social Framework support Twitter since iOS 5. So its been 4 major version update and I think we should use that instead.

In short, I couldn’t find any on github and then I created for my self. It has been used and working as expected. The library is self-explaning, you will have no worry using it. Download the library on my Github profile and follow these steps below.

Put these below on your .m file:

#import "DTTwitterLogin.h"

Then when the user clicked on some button, put these below:

[DTTwitterLogin loginWithCompletion:^(NSDictionary *twitterDetail, ACAccount *twitterAccount) {
    
    [DTTwitterLogin requestLoginWithAccount:twitterAccount completionBlock:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
        
        dispatch_sync(dispatch_get_main_queue(), ^{
            
            if (error == nil) {
                NSError *jsonError;
                NSDictionary *item = [NSJSONSerialization JSONObjectWithData:responseData
                                                                     options:NSJSONReadingMutableLeaves
                                                                       error:&jsonError];
                NSLog(@"Item: %@", item);
            }
            
        });
        
    }];
    
} andError:^(NSError *error) {
    NSLog(@"Error: %@", error);
}];

If you have multiple account, the library will ask a user which account he wanted to use. Then it will ask Twitter API to get the details of that user.

Happy coding!