Android Development For iOS Developer

iOS Developer တစ်ယောက် အနေနဲ့ Android ကို လေ့လာလာခြင်း
ရေးသားသူ : saturngod

iOS development လုပ်ရာကနေ android development ကို လေ့လာဖြစ်တာက Ornagai ကြောင့် ဆိုရမယ်။ Dictionary App ဖြစ်တာကြောင့် လွယ်လွယ် နဲ့ ရှင်းရှင်းလေး ရေးလို့ရတယ်။ iOS developer အနေနဲ့ Android Development လုပ်မယ်ဆို အောက်ပါ ပြဿနာ တွေ ကြုံရလိမ့်မယ်။

IDE

Android development စ လုပ်တုန်းက ပထမဆုံး ကြုံရတဲ့ ပြသနာကတော့ IDE ပဲ။ Eclipse ဟာ Xcode ကို လုံးဝ မယှဉ်နိုင်ပါဘူး။ Mac OSX မှာ အတော်လေးကို နှေးပါတယ်။ အခုမှ စလေ့လာမယ်ဆိုရင်တော့ Eclipse အစား android studio ကို အသုံးပြုတာ ပိုကောင်းတယ်။ လက်ရှိ eclipse project တွေကို android studio ကို ပြောင်းဖို့ရာမှာ export , import နဲ့ က အဆင်မပြေပါဘူး။ Android Studio မှာ project အသစ်ဆောက်ပြီး file တွေ ကို copy ကူးပြီး setting ပြန်ချမှာ android studio မှာ ပြန်သုံးဖို့ အဆင်ပြေတယ်။ တကယ်လို့ လက်ရှိ project က eclipse ကိုအသုံးပြုထားရင် eclipse ကို အသုံးပြုပါ။ တကယ်လို့ android studio အသုံးပြုထားရင် android studio အသုံးပြုပါ။ ဒါကြောင့် ဖြစ်နိုင်ရင် အခုအချိန်မှာတော့ စက်ထဲမှာ eclipse ကော android studio ကော သွင်းထားတာ ကျွန်တော့် အတွက်တော့ ပိုအဆင်ပြေပါတယ်။

Java

Objective-C နဲ့ java ဟာ ဘာကွာလဲ ဆိုတော့ အများကြီးကွာပါတယ်။ Objective-C ဟာ objective-c ဖြစ်ပြီး java ကတော့ java ပါ။ programmer တစ်ယောက်အနေဲ့ language က အတားအဆီး တစ်ခု မဟုတ်ပါဘူး။ objective-c မှာ MVC သုံးပြီး OOP နဲ့ ရေးခဲ့သလို Android မှာ java နဲ့လည်း အဲလို ရေးလို့ရပါတယ်။ စဉ်းစားရပုံခြင်းကတော့ အတူတူပါပဲ။ ဒါကြောင့် java ဖြစ်လို့ ပြန်လေ့လာရမယ်ဆိုပြီး java တွေကို အစကနေ ပြန်ဖတ်နေဖို့ မလိုပါဘူး။ Objective-C သိထားရင် java ကိုလည်း လွယ်လင့်တကူ လေ့လာနိုင်ပါတယ်။ app ရေးနေရင်းနဲ့ လိုအပ်တာတွေကို google မှာ ရှာရင်းနဲ့ လေ့လာသွားလို့ရပါတယ်။

XML

Android လုပ်ပြီဆိုရင် XML ကို နေရာ တိုင်းမှာ တွေ့ရပါလိမ့်မယ်။ UI Layout ချတာလည်း XML နဲ့ပဲ။ value တွေကို storage လုပ်တာလည်း XML နဲ့ပဲ။ theme တွေ ဖန်တီးတာကလည်း XML နဲ့ပဲ။ XML ကို နေရာ အတော်များများမှာ တွေ့နိုင်တယ်။ Layout ကို XML နဲ့ ချပြီးတော့ value ကိုလည်း XML ကနေ သွားဖတ်တဲ့ အပိုင်းက iOS သမားတွေ အတွက် စိမ်းနေမှာပါ။ String variable , color variable တွေကို xml မှာ သိမ်းထားပြီး layout ချတဲ့ အခါ xml မှာ ရေးထားတဲ့ varaiable တွေကို ပြန်ခေါ်သုံးထားတာဟာ အတော်လေးကို ကောင်းပါတယ်။ လိုအပ်တာတွေကို မူရင်း xml ထဲမှာ သွားပြင်ရုံပဲပေါ့။

    <?xml version="1.0" encoding="utf-8"?>
    <resources>

        <string name="app_name">NSMag</string>
        <string name="title_section1">Section 1</string>
        <string name="title_section2">Section 2</string>
        <string name="title_section3">Section 3</string>
        <string name="navigation_drawer_open">Open navigation drawer</string>
        <string name="navigation_drawer_close">Close navigation drawer</string>
        <string name="action_example">Example action</string>
        <string name="action_settings">Settings</string>

    </resources>

Interface Builder

Android မှာ xcode လိုမျိုး interface builder မရှိပါဘူး။ android မှာ layout xml ကို အသုံးပြုကြပါတယ်။ layout ချဖို့အတွက် android studio မှာ ပါဝင်ပြီးသား ဖြစ်တဲ့အတွက် interface builder လိုမျိုး အသုံးပြုလို့ရပါတယ်။ ဒါပေမယ့် Device အမျိုးမျိုးအတွက် layout ကို စမ်းသပ်ဖို့လိုပါတယ်။ Realive layout , Linear Layout က အသုံးများပါတယ်။ Android အတွက် UI/UX အတွက် XML နဲ့ သေချာ layout design ချတတ်ဖို့လိုပါတယ်။ Android Studio က layout designer မှာ screen အမျိုးမျိုး ပြောင်းပြီး စမ်းကြည့်လို့ရတဲ့ အတွက် design ချရမှာ အဆင်ပြေပါတယ် ။

Read Design Pattern

Android လုပ်တော့မယ်ဆိုရင် google က ထုတ်ပေးထားတဲ့ Guidelines ကို မဖြစ်မနေ ဖတ်ထားသင့်ပါတယ်။ Design pattern က သင့် app ရဲ့ rating review ကို ပြောင်းလဲ ပေးနိုင်ပါတယ်။ Guidelines အရေးပါပုံကို How Following Android Guidelines Can Change Users’ Perception of Your App ကို ဖတ်ကြည့်သင့်ပါတယ်။ iOS က design ကို android မှာ ပေါင်းစပ်ဖို့ မကြိုးစားချင်ဘူး။ Android user အများစုဟာ android guidelines မှာ ဖော်ပြထားတဲ့ app တွေနဲ့ အကျွမ်းတဝင် ရှိနေပြီးသားမို့ guidelines တိုင်းသာ အသုံးပြုမယ်ဆိုရင် user တွေ အတွက် မသုံးခင် စမ်းနေစရာမလိုပဲ လွယ်လင့်တကူ အသုံးပြုနိုင်ပါလိမ့်မယ်။

No Simulator

Android development အတွက် iOS လို simulator မရှိပါ။ emulator သာ ရှိပါတယ်။ emulator ဟာ နှေးပြီး သုံးတဲ့ အခါ လေးပါတယ်။ ဒါကြောင့် android development လုပ်မယ်ဆိုရင်တော့ device ဝယ်ထားဖို့လိုပါတယ်။ ဖြစ်နိုင်ရင် android phone တစ်လုံး နဲ့ tablet တစ်လုံးကို android development အတွက် ဝယ်ထားသင့်တယ်။ နောက်ပြီးတော့ genymotion ကို လည်း အသုံးပြုနိုင်တယ်။ genymotion က android emulator ထက်ပိုမြန်ပါတယ်။ သူက virtual box ကို အသုံးပြုပြီးတော့ android ကို run ထားတယ်။ android studio အတွက်ကော eclipse အတွက်ပါ အဆင်ပြေတယ်။

No NSDictionary

Java မှာ NSDictionary မရှိပါဘူး။ အဲဒီအတွက် JSONObject ဒါမှမဟုတ် hashmap ကို အသုံးပြုပါ။

AFNetworking ?

AFNetworking လိုမျိုး library ကို အသုံးပြုချင်တယ်ဆိုရင်တော့ android-async-http library ကို အသုံးပြုလို့ရပါတယ်။

Why Android

မြန်မာ market ကို အဓိက ထားမယ်ဆိုရင်တော့ android ကို မဖြစ်မနေ လုပ်ဖို့လိုလာပါတယ်။ မြန်မာနိုင်ငံက လူ အများစုဟာ android ကို အသုံးပြုပါတယ်။ Playstore ကို မြန်မာနိုင်ငံကနေ access လုပ်လို့ ရပြီးနောက် play store ကနေ download ချနှုန်းလည်း များလာပါတယ်။ Free app တွေအတွက်ဆိုရင် Android နဲ့ playstore က မြန်မာနိုင်ငံက လူတွေ အတွက် အတော်လေးကို အဆင်ပြေပါတယ်။ လက်ရှိ iOS app ကို android ကို port လုပ်ရတာဟာ ခက်ခဲလှတယ်တော့ မဟုတ်ပါဘူး။ စဉ်းစားထားတဲ့ logic တွေကို objective-c ကနေ java ပြောင်းရေးတဲ့ သဘောပါပဲ။ ဒါကြောင့် Android အတွက် ရေးနိုင်တယ်ဆိုရင် ရေးလိုက်ပါ။ သင်ထင်သလောက် မခက်ခဲတာကို တွေ့ရပါလိမ့်မယ်။