ඇපාචේ කොර්ඩොවා (Apache Cordova)

ඇපාචේ කොර්ඩොවා (කලින් ෆොන්ගැප් (PhoneGap)) ජංගම මෘදුකාංගය සෑදීමට යොදාගන්නා ඡනප්‍රිය ආකෘතියකි. මෙය මුලින්ම නිපදවන ලද්දේ නිටෝබි සමාගම මගිනි. 2011 වර්ෂයේදී ඇඩෝබි සමාගම නිටෝබි මිලදීගෙන එය ෆොන්ගැප් ලෙස නම්කර පසුව ඇපාචේ කොර්ඩොවා ලෙස ඕපන්-ස්ඕස් (open source) සංස්කරණයක් නිකුත් කරන ලදී. ඇපාචේ කොර්ඩොවා සීඑස්එස්3(CSS3) එච්ටීඑම්එල්5(HTML5) සහ ඡාවාස්ක්‍රිප්ට්(Java Script) යොදාගෙන, මෘදුකාංග සම්පාදකයන්ට ජංගම උපාංග සදහා මෘදුකාංග සම්පාදනයට ඉඩ ලබාදෙයි. මෙහිදී ඇන්ඩ්රොයිඩ්, අයිඕඑස්, වින්ඩොස් දුරකථන සදහා වේදිකාවන්(platform) මත යැපෙන වැඩසටහන් ක්‍රමලේඛණය කරීමේ අතුරැමුහුණත්(APIs) යොදාගැනීමකින් තොරව වැඩසටහන් ක්‍රමලේඛණය කල හැක. මෙහිදී උපාංග සමග වැඩකිරීම සදහා එච්ටීඑම්එල්, ඡාවාස්ක්‍රිප්ට් වල ගුණාංගයන් වැඩිදියුණු කර ඇත. මෙහිදී දෙමුහුම්(hybrid) වැඩසටහන් ලැබෙයි. එනම් මේවා සත්‍යය වශයෙන්ම සාමාන්‍යය ජංගම වැඩසටහන් හෝ  සම්පූර්ණයෙන්ම වෙබ් පදනම් වු ඒවාද නොවෙයි. මේවා 1.9 සංස්කරණයේ සිට දක්නට ලැබෙයි.

මෙම වැඩසටහන් කලින් ෆොන්ගැප් ලෙසත් පසුව කොර්ඩොවා ලෙසත් හදුන්වන ලදී.

ෆොන්ගැප් යනු කොර්ඩොවා මත පදනම්ව ඇඩෝබි නිශ්පාදනය කල සංස්කරණයයි. මෙලෙස කොර්ඩොවා මත පදනම් වු තවත් බොහෝ මෙවලම් හා ආකෘතීන් පවතී. උදාහරණයක් ලෙස අයනික්(Ionic), මොනාකා(Monaca), ටැකො(TACO), ඉන්ටෙල් එක්ස්ඩීකේ (Intel XDK) සහ ටෙලෙරික් වේදිකාව(Telerik Platform) දැක්විය හැක. මෙම මෙවලම් ඒවායේ මූලික මෙවලම ලෙස යොදාගනු ලබන්නේ ෆොන්ගැප් නොව කොර්ඩොවායි.

ඇඩෝබි, බ්ලැක්බෙරි, ගූගල්, අයිබීඑම්, ඉන්ටෙල්, මයික්‍රොසොෆ්ට්, මොසිල්ලා සහ තවත් අය ඇපාචේ කොර්ඩොවා ව්‍යාපෘතියට දායක වී ඇත.

## ඉතිහාසය 
සැන්ෆ්‍රැන්සිස්කො වල පැවතුන අයිෆොන්ඩෙව්කෑම්ප්(iPhoneDevCamp) ඉසව්වෙහිදි මුලින්ම නිර්මාණය කරන ලදී. 2009 වසරේ පැවති  ඕ’රෙයිලි මීඩියාස්(O'Reilly Media's)  වෙබ් 2.0 සමුළුවෙදි ජනතාවගේ තේරීමේ සම්මාණය දිනාගන්නා ලදි. මෙය මෘදුකාංග විශාල ප්‍රමාණයක් සංවර්ධනය කිරීමට යොදාගෙන තිබේ. ඇපල් සමාගම මේ ආකෘතිය සදහා ඔවුන්ගේ අනුමැතිය පවතින බවට සහතික කර ඇත. මොනාකා(Monaca), ඇප්මොබි(appMobi), කොන්වර්ටිගෝ(Convertigo), විසිඇප්ස්(ViziApps) සහ වර්ක්ලයිට්(Worklight) වැනි ජංගම මෘදුකාංග වේදිකාවන් ගණනාවක්ම ප්‍රධාන වශයෙන් ඔවුන්ගේ සංවර්ධන කටයුතු සදහා මෙය යොදාගනි.

2011 ඔක්තෝම්බර් 4 වනදා නිටෝබි සොෆ්ට්වෙයාර් අත්පත්කරගත් බව ඇඩෝබි සමාගම නිළ වශයෙන් නිවේදනය කරන ලදි. ඒ සමගම  ඇපාචේ කොර්ඩොවා ලෙස අළුත් ව්‍යාපෘතියක් ආරම්භ කිරීමට ‍ ෆොන්ගැප් කේතය ඇපාචේ මෘදුකාංග පදනම වෙත දායක කරන ලදී. මෙම ව්‍යාපෘතිය ඇපාචේ කොල්බැක්, ඇඩෝබි ෆොන්ගැප් හා ඇඩෝබි ෆොන්ගැප් බිල්ඩ් යන නම් වලින් ද පෙනි සිටී.

ෆොන්ගැප් වල මුල් සංස්කරණ වලදී අයිඕඑස් මෘදුකාංග  සංවර්ධනය කිරීම සදහා ඇපල් පරිගණකයක්ද, වින්ඩෝස් ජංගම මෘදුකාංග  සංවර්ධනය කිරීම සදහා වින්ඩෝස් පරිගණකයක්ද අවශ්‍යය විය. නමුත් 2012 සැප්තැම්බර් වලින් පසුව මූල කේතය ක්ලවුඩ් කම්පයිලර්(cloud compiler) එකකට උඩුගත කර සහය දක්වන ඕනෑම වේදිකාවක් සදහා මෘදුකාංග උත්පාදනය කරගැනීමට ඇඩෝබි ෆොන්ගැප් ඉඩ ලබාදී ඇත.

## නිර්මාණය හා තාර්කිකත්වය 
ඇපාචේ කොර්ඩොවා මෘදුකාංගය සෑදීමට සීඑස්එස්3 සහ එච්ටීඑම්එල්5 යොදාගන්නා අතර ඒවායේ තර්කණය සදහා ඡාවාස්ක්‍රිප්ට් බාවිතා කරයි. එච්ටීඑම්එල්5 ත්වරණමානය,කැමරාව, සහ ජී.පී.එස් උපකරණය වැනි දෘඩාංග වලට  ප්රවේශවීමට ඉඩ ලබාදෙයි. කෙසේ වුවද පැරණි ඇන්ඩ්‍රොයිඩ් සංස්කරණ වලදි ජංගම බ්රවුසර මගින් එච්ටීඑම්එල්5 හරහා දෘඩාංග වලට  ප්රවේශවීමට ඉඩ ලබා නොදෙයි. මෙම සීමාවන් ජය ගැනීමට, ඇපාචේ කොර්ඩොවා එච්ටීඑම්එල්5 කේතයන් උපාංගයේ වෙබ්වීව්(WebView) එක මත ඔබ්බවා ඇත.

ඇපාචේ කොර්ඩොවා ප්ලගින සමග සම්බන්ධ කර ස්ථර(layer) හා එච්ටීඑම්එල්5 පිටු අතර සෘජු සංනිවේදනයට ඉඩ ලබාදෙයි. මෙහිදී  මෘදුකාංග සම්පාදකයන් ඡාවාස්ක්‍රිප්ට් බාවිතයෙන් වැඩි අංගයන් එකතුකිරීම සිදුකරයි. මේ ප්ලගින උපාංගයේ ත්වරණමානය,කැමරාව, මාලිමාව, ගොනු පද්ධතිය(file system), මයික්රෆෝනය සහ වෙනත් දේවල් වලට ප්රවේශවීමට ඉඩ ලබා දෙයි.

කෙසේ  උවද වෙබ් අඩවි පදනම් කරගත් තාක්ෂණය සහිත සමහර ඇපාචේ කොර්ඩොවා මෘදුකාංග සමාන ක්‍රියාකාරීත්වයෙන් යුත් සාමාන්‍යය මෘදුකාංග වලට වඩා අඩු වේගයකින් ක්‍රියාත්මක වෙයි. ඉතා මන්දගාමී ලෙස ක්‍රියාත්මකවීම නිසා ඇපල් මගින් මෘදුකාංග ප්‍රතික්ශේප විය හැකි බවට අනතුරැ ඇගවීමක් ඇඩෝබි සමාගම මගින් සිදුකරයි. මෙය සමහර ඇපාචේ කොර්ඩොවා මෘදුකාංග වල පවතින ගැටළුවකි.

## සහාය දක්වන වේදිකාවන් 
ඇපාචේ කොර්ඩොවා දැනට ඇපල් අයිඕඑස්(Apple iOS), බාඩා(Bada), බ්ලැක්බෙරි(BlackBerry), ෆයර්ෆොක්ස් ඕඑස්(Firefox OS), ගූගල් ඇන්ඩ්‍රොයිඩ්(Google Android), එල්ජී වෙබ්ඕඑස්(LG webOS), මයික්‍රෝසොෆ්ට් වින්ඩොස් දුරකථන((Microsoft Windows Phone (7 and 8)), නොකියා සිම්බියන් ඕඑස්(Nokia Symbian OS), ටයිසන් (Tizen(SDK 2.x)),  සහ උබුන්ටු ටච්(Ubuntu Touch) යන  මෙහෙයුම් පද්ධති සදහා මෘදුකාංගය සෑදීමට සහාය දක්වයි. එක් එක් මෙහෙයුම් පද්ධති සදහා සහාය දක්වන ගුණාංග පහත වගුවේ දක්වා ඇත.

## නිර්දේශයන්