Theory
Android app સુધીનો ત્રીજો રસ્તો
તમે અત્યાર સુધીમાં બે રીતે Android apps બનાવી છે: Java માં (BCA305-02, FestConnect Mobile) અને Dart/Flutter વડે (BCA405-02). આ વિષય ત્રીજી રીત શીખવે છે: Kotlin, એટલે કે એ ભાષા જેને Google હવે Android માટે સત્તાવાર રીતે પસંદ કરે છે.
ત્રીજી શા માટે? કારણ કે Kotlin, Java સાથે પૂરેપૂરું સુસંગત રહીને પણ, Java ની સૌથી મોટી પીડાઓ દૂર કરે છે, ખાસ કરીને પેલો ડરામણો null-pointer crash. આ વિષયમાં FestConnect Mobile ને Kotlin માં ફરી બનાવવામાં આવે છે. તમને Java સારું આવડતું હોય (BCA403) તો Kotlin તમને ખરબચડી કિનારીઓ ઘસી નાખેલા Java જેવું જ લાગશે. આ પાઠ ભાષા અને એનાં સાધનોનો પરિચય કરાવે છે.
Theory
Kotlin, formally
Kotlin એ JetBrains દ્વારા બનેલી આધુનિક, statically-typed programming language છે, જે JVM પર ચાલે છે (એ Java bytecode માં compile થાય છે, બરાબર BCA403 વાળા Java ની જેમ જ).
એનાં મુખ્ય લક્ષણો આ રહ્યાં:
- ટૂંકી: Java કરતાં ઘણો ઓછો boilerplate (semicolons નહીં, type ની તારવણી, ઓછો દેખાડો)
- સલામત: અંદરથી જ મળતી null safety null ને લગતી ભૂલો COMPILE વખતે જ પકડી પાડે છે, runtime ના crash તરીકે નહીં
- સાથે ચાલી શકે એવી: એ Java સાથે સહેલાઈથી કામ કરે છે, એટલે કે Java નો code અને libraries બોલાવી શકે છે અને Java માંથી બોલાવાઈ પણ શકે છે, જેથી તમે બંનેને ભેળવી શકો
- object-oriented અને functional બંને
એ JVM ને લક્ષ્ય બનાવે છે અને Java સાથે મળીને ચાલે છે, એટલે Kotlin એવો હરીફ નથી જે તમારું Java નું જ્ઞાન નકામું કરી નાખે: એ તો એના પર જ ચણતર કરે છે. આ જ કારણોસર Google એ એને Android માટે પસંદગીની ભાષા બનાવી.
Practical
પહેલું Kotlin: શું ગેરહાજર છે એ જુઓ
fun main() { // fun એ function જાહેર કરે છે; અહીંથી શરૂઆત
val fest = "TechnoUtsav" // val = ફક્ત વાંચી શકાય; type String તારવાયો
var seats = 350 // var = બદલી શકાય; Int તારવાયો
seats = seats - 1 // ચાલે: var બદલાઈ શકે છે
// String template: string ની અંદર $variable
println("$fest has $seats seats") // TechnoUtsav has 349 seats
}
// ધ્યાન દો: semicolons નથી, main માટે class જોઈતો નથી, types તારવાયેલા છે.
Theory
IDE: IntelliJ IDEA / Android Studio
Kotlin નું ઘર જેવું IDE એટલે IntelliJ IDEA, જે JetBrains એ બનાવ્યું છે (એટલે કે Kotlin ના જ સર્જકોએ), અને એથી એમાં Kotlin નો ટેકો સૌથી સારો મળે છે. ખાસ ANDROID માટે તમે Android Studio વાપરો છો, જે IntelliJ પર જ ચણાયેલું છે અને એમાં Kotlin નો ટેકો શરૂઆતથી જ આવે છે.
ગોઠવણી સીધીસાદી છે: IntelliJ IDEA (અથવા Android ના કામ માટે Android Studio) download કરો, install કરો, અને નવો Kotlin project બનાવો; Kotlin compiler અને JVM ને IDE પોતે સંભાળી લે છે. Android Studio નો પરિચય તો તમને BCA305-02 માં Java Android વખતે થઈ જ ચૂક્યો છે; હવે એ જ સાધન તમારા Kotlin ને સાચવશે. ફક્ત Kotlin ના મહાવરા માટે (Android વગર) IntelliJ IDEA Community Edition મફત છે અને ઉત્તમ પણ.
Quiz
Android development માટે Java કરતાં Kotlin નો ખાસ ઓળખાવતો ફાયદો કયો છે?
- Kotlin કોઈ પણ Java library વાપરી શકતું નથી
- Kotlin માં અંદરથી જ null safety છે (null ની ભૂલો compile વખતે પકડાય છે) અને એ વધુ ટૂંકું છે, છતાં Java સાથે પૂરેપૂરું મળીને ચાલી શકે છે
- Kotlin ફક્ત iOS પર જ ચાલે છે
- Kotlin ને Java અને JVM સાથે કશો સંબંધ જ નથી
Show the answer
Kotlin માં અંદરથી જ null safety છે (null ની ભૂલો compile વખતે પકડાય છે) અને એ વધુ ટૂંકું છે, છતાં Java સાથે પૂરેપૂરું મળીને ચાલી શકે છે
Kotlin ના મુખ્ય ફાયદા છે અંદરથી મળતી NULL SAFETY (compiler સંભવિત null-pointer ભૂલોને runtime પહેલાં જ પકડી પાડે છે, જેથી Java ના crashes નો આખો મોટો વર્ગ ટળી જાય છે) અને ટૂંકાણ (ઘણો ઓછો boilerplate), અને એ બધું Java સાથે પૂરેપૂરું મળીને ચાલતાં ચાલતાં જ; એ JVM પર ચાલે છે અને દરેક Java library વાપરી શકે છે. વિકલ્પ A સાચી વાતથી બરાબર ઊલટો છે: Java સાથેનું સહજ જોડાણ તો Kotlin નું મુખ્ય લક્ષણ છે. વિકલ્પ C ખોટો છે: Kotlin એ Google ની પસંદગીની ANDROID ભાષા છે (JVM પર આધારિત). વિકલ્પ D એના JVM તથા Java સાથેના સંબંધને જ નકારે છે, જ્યારે એ સંબંધ જ કારણ છે કે એને અપનાવવું શક્ય બન્યું (અગાઉનો Java code અને આવડત બંને સાથે આવે છે). ટૂંકમાં એની રજૂઆત આ છે: Java ની સલામતી અને જોડાણ, પણ એની લંબાણ તથા null ના crashes વગર.
Think first
Android ની ત્રીજી ભાષા શા માટે શીખવી?
તમને Java (Android) અને Dart (Flutter) તો આવડે જ છે. તો ઉદ્યોગ, અને આ વિષય, ઉપરથી Kotlin પણ શા માટે ઉમેરે છે? વિચારીને પછી tap કરો.
Show the answer
કારણ કે એ દરેક ભાષા નોકરીમાં તમને મળી શકે એવી જુદી અને ખરેખરી રીતનું પ્રતિનિધિત્વ કરે છે. JAVA એ મૂળ ભાષા છે, અને Android નો હજી પણ પ્રચંડ કદનો code એમાં જ લખાયેલો છે. KOTLIN હવે native Android માટે Google ની પસંદગીની ભાષા છે: આધુનિક, સલામત, ટૂંકી, અને નવા native Android projects માટે મૂળભૂત પસંદગી, એટલે એની રોજગારીની કિંમત ઘણી છે. DART/FLUTTER એ બંને મંચ પર ચાલતો રસ્તો છે (Android અને iOS બંને માટે એક જ codebase).
ત્રણેય આવડે એટલે તમે લવચીક બનો છો: તમે જૂનું Java સંભાળી શકો, નવી native apps Kotlin માં લખી શકો, કે Flutter માં બંને મંચ માટે બનાવી શકો, અને દરેક project માટે યોગ્ય સાધન પસંદ કરી શકો. ખાસ Kotlin શીખવા જેવું છે કારણ કે NATIVE Android development એ જ દિશામાં જઈ રહ્યું છે, અને કારણ કે Java પરના એના સુધારા (null safety, ટૂંકાણ) ખરેખર કીમતી છે. ત્રણ ભાષા, ત્રણ રીતો, અને એક પરિસ્થિતિ પ્રમાણે ઢળી શકનારો developer.
Watch out
Kotlin ના પરિચયમાં થતી ભૂલો
Kotlin એ Java ને છોડી દીધું છે એમ માનવું: એ JVM પર જ ચાલે છે અને પૂરેપૂરું સાથે મળીને ચાલે છે; તમારું Java નું જ્ઞાન સાથે જ આવે છે.
Semicolons ની અપેક્ષા રાખવી: Kotlin ને એમની જરૂર નથી (સરસ સરળીકરણ).
IntelliJ અને Android Studio ને ગૂંચવવાં: Android Studio IntelliJ પર જ ચણાયેલું છે; Android માટે એ વાપરો, અને ફક્ત Kotlin માટે IntelliJ.
એ ફક્ત Android માટે જ છે એમ ધારવું: Kotlin સામાન્ય JVM, JavaScript અને native ને પણ લક્ષ્ય બનાવે છે; Android એનો સૌથી જાણીતો ઉપયોગ છે.
Null safety ને ટાળવું: એ જ Kotlin ની ઓળખ છે; એને જાણી જોઈને શીખો (હવે પછીના પાઠમાં).
Theory
ગોઠવણી થઈ ગઈ; હવે ભાષા
Kotlin અને એનું IDE તૈયાર થઈ ગયાં, એટલે હવે પછીના પાઠ ભાષા પોતે શીખવે છે, અને તમને Java આવડતું હોવાથી એ ઝડપથી આગળ વધે છે, ફક્ત Kotlin નાં આગવાં લક્ષણો પર જ બ્રેક મારીને. પહેલાં આ આવશે: variables, val અને var વચ્ચેનો ભેદ, Kotlin ના types, અને ખેલનો મુખ્ય નાયક, એટલે કે NULLABLE variables તથા null safety, જે લક્ષણ Kotlin ને Java થી સૌથી વધુ જુદું પાડે છે. FestConnect Mobile નું ફરી ચણતર મજબૂત અને crash સામે ટકે એવા data થી શરૂ થાય છે.
Summary
Key takeaways
- Kotlin એ JetBrains ની આધુનિક, statically-typed JVM ભાષા છે, જેને Google એ Android માટે સત્તાવાર રીતે પસંદ કરી છે.
- એ Java bytecode માં compile થાય છે (Java ની જેમ જ) અને Java સાથે પૂરેપૂરી મળીને ચાલે છે (Java ની libraries વાપરે છે, Java ના code સાથે ભળે છે).
- મુખ્ય લક્ષણો: ટૂંકી (semicolons નહીં, type ની તારવણી, ઓછો boilerplate), સલામત (અંદરથી જ null safety), અને object-oriented તથા functional બંને.
- Null safety null ને લગતી ભૂલો compile વખતે જ પકડી પાડે છે, જેથી Java ના runtime crashes નો મોટો વર્ગ ટળી જાય છે.
- IDE: ફક્ત Kotlin માટે IntelliJ IDEA, અને Android માટે Android Studio (જે IntelliJ પર ચણાયેલું છે).
- Java (BCA305-02) અને Dart/Flutter (BCA405-02) પછી આ Android નો ત્રીજો રસ્તો છે; એ Java પર ચણતર કરે છે, તમારા જ્ઞાનની જગ્યા લેતું નથી.
- યાદ રાખવાની કડી: Kotlin એટલે એ જ JVM પર ચાલતું, ટૂંકું અને null થી સલામત બનાવેલું Java.