Friday, February 17, 2017

Ionic 2 - Hybrid mobile app development Framework




අද මම මේ ලිපියෙන් කතා කරන්නේ ionic 2 කියන mobile app development framework එක ගැන.

මේ ගැන කතා කරද්දී අපි මුලින්ම දැනගන්න ඕනි native app එකක් කියන්නේ මොකක්ද සහ hybrid app එකක් කියන්නේ මොකක්ද කියලා.

native app එකක් develop කරලා තියෙන්නේ යම් විශේෂිත වූ platform එකක් හෝ device එකක් සදහා පාවිචිචි කරන්න. නමුත් hybrid කියන concept එකේදි application එකේ core එක එහෙම නැත්නම් මදය ලියලා තියෙන්නේ HTML 5 mobile app එකක් විදිහට. ඊට පස්සේ මේ  core  එක නැත්නම් මදය ආවරණය කරනවා native device එකකින්. මේ native wrapper එක අතරමැදියෙක් විදිහට ක්‍රියා කරලා instructions එහෙම නැත්නම් උපදෙස් අදාළ mobile device එකට තේරුම් ගැනීමට හැකි වන පරිදි පරිවර්තනය කරනවා.

මේකෙදි තියෙන විශේෂත්වය තමා දැන් අපිට mobile app එකේ core එක නැවත පාවිච්චි කරන්න පුළුවන් වෙනත් platforms සදහා. අපිට කරන්න තියෙන්නේ mobile device එක සහ එහි operating system එක සදහා app core එක ආවරණය කරලා තියෙන native wrapper එක ලිවීම පමණයි. native app එක්ක සන්සන්දනය කරලා බලද්දී hybrid app වල development speed එක වැඩියි වගේම එක් විශේෂිත platform එකක් සදහා සීමා නොවී platform කිහිපයක් සදහා පාවිච්චි කරන්න පුළුවන්.
උදාහරණයක් විදිහට ionic 2 mobile app framework එක පාවිච්චි කරලා අපිට android, windows, ios platform වලට අනුගත වන ආකාරයට mobile app එකක් හදාගන්න පුළුවන්.

hybrid application වල අපි පාවිච්චි කරනවා cordova interface එක. අපි mobile app එකක් පාවිච්චි කරනවා නම් අපිට mobile එකේ hardware එක්ක සම්බන්ද වෙන්න වෙනවා. උදාහරණයක් විදිහට mobile phone එකේ camera එක. mobile එකෙන් photo එකක් ගන්න අවශ්‍ය නම් අපිට එකට phone එකේ camera එක පාවිච්චි කරන්න වෙනවා. මේකට පිළිතුරක් වශයෙන් තමා cordova interface එක යොදාගන්නේ. මේකෙන් javascript application එකට mobile එකේ  hardware access කරන්න පුළුවන් වෙනවා. cordova plugins විශාල ප්‍රමාණයක් තියෙනවා hybrid applcation එකට අවශ්‍ය කරන ඕනිම feature එකක් develop කරගන්න පුළුවන් විදිහට.

අපි දැන් බලමු ionic කොහොමද install කරගන්නේ කියලා

1. මුලින්ම Apache Cordova install  කරගන්න ඕනි.
Cordova  install  කරන්න කලින් nodejs install කරලද තියෙන්නේ කියල බලන්න අවශ්‍යයි.

අපිට පහල තියෙන commands run කරන්න windows command line, git bash terminal එක හෝ linux terminal එක පාවිච්චි කරන්න පුළුවන්. මම මෙතැනදී පාවිච්චි කරලා තියෙන්නේ git bash terminal එක.
git bash එකේ  npm  -v  command එක run කලාම nodejs install කරලා තියෙනවා නම් මේ වගේ npm version number එක terminal එකේ බලාගන්න පුළුවන්.


 



Apache cordova install කරගැනීම සදහා,

$ npm install -g cordova


සැ .යු . මේ commands run කරන්නේ linux පරිගනකයක නම්  command එකේ ආරම්භයට sudo යනුවෙන් යෙදිය යුතුයි.

උදාහරණයක් විදිහට $ sudo npm install -g cordova


2.ionic install කරගැනීම සදහා,

$ npm install -g ionic


3. පහත command එක git bash එකේ run කරලා අපිට ionic new project එකක් හදන්න පුළුවන්.


$ ionic start --v2 myproject blank


ionic 2 පාවිච්චි කරන්න නම් --v2 කියලා pass කරන්න වෙනවා .එහෙම නැත්නම් හැදෙන්නේ ionic version 1 project එකක්.  
ඒ වගේම අපිට template එකක් specify කරන්නත් පුළුවන්. ගොඩක් වෙලාවට අපි පාවිච්චි කරන්නේ blank template එක.
  

දැන් අපිට හදාගන්න පුළුවන්  pages එකක් තියෙන simple ionic app එකක්.

4. ඊට පස්සේ අදාල project folder එක ඇතුලට ගිහින් git bash එක open කරලා පහත දැක්වෙන command එක run කරන්න.

$ ionic serve


















එතකොට මේ විදහට අපිට පලවෙනි වතාවට අපේ app එක අලුත් browser ටැබ් එකක open කරගන්න පුළුවන්.

මේ වගේම තවත්  code එකක් තියෙනවා.

$ ionic lab

මේකෙන් අපිට පුළුවන් අපේ app එක android,windows ,ios  කියන platform තුනේදී appear වෙන්නේ කොහොමද කියලා බලාගන්නත් 😊😊!



Sunday, October 2, 2016

ජීවිතය යනු ගමනකි.ගමනාන්තය කෙසේ  වේදැයි අනුමාන කිරීම පමණක් එහි ගමන් ගන්නා අප හට කල හැකිය.

විවිධ දුෂ්කර අවධි මෙන්ම විවිධ වූ පුද්ගල චරිත සමුහයක් ජීවන ගමන් මගෙහිදී මුණගැසෙනු ඇත.සමහරෙක් මට කිසි දිනෙකදී මුණ නොගසුනානම් යැයි කියා විteකදී ඔබට සිතී ඇතිවාට සැක නැත.නමුදු එලෙස අදුර කරා ඇදී ගිය ඔබේ ජීවිතය යළි පණ පෙවූ ජීවකයකු ඔබ සතු නම් ඔබ සැබවින්ම වාසනාවන්තය.

කොන්දේසි විරහිතව යමෙකුට ආලය කල හැකි පුද්ගලයින් ලොව දුර්ලභය.ආලය යනු හුදෙක් ආත්ම තණ්හාවක් හෝ මමය මාගේය යන හැගීම පමණකැයි යමෙකුට නිර්වචනය කල හැකිය.එය වැරදි යයි කාට නම් කිව හැකිද? ආලය කිරීමත් පෙරළා ආදරය බලාපොරොත්තු වීමත් සාමාන්‍ය මිනිස් ස්වභාවයයි.ආලය නොලැබුණු කල මිනිසා තිරිසනෙකු වන්නේද , ආලය ලැබුණු කල තිරිසනෙකු වුව මිනිස් ගති ප්‍රකට කරන්නේද එබැවින් යැයි අපට සිතිය හැකිය.

පෙර සදහන් කල පරිදෙන් කොන්දේසි විරහිතව ඔබට ආලය කරන්නෙකු ඔබ සතු වේ නම් , ගමනාන්තය නොදන්නා නමුත් ජීවන මංපෙතේ ඇවිද යාමට ඔහු හෝ ඇය ඔබට මහත් රුකුලක් වනු නොඅනුමානය.ලෝකය හමුවේ ඔවුන් ඔබ වෙනුවෙන් පෙනී සිටිනු ඇත.වැටුණු විට නැගිටීමට අත් වැලක් වනු ඇත.එවන් පුද්ගලයෙකු ඔබ සතු වේ නම් ඔහු හෝ ඇය සුරැකිව ලග තබා ගැනීම ඔබ සතුය.මන්ද හැල්මේ දුවන ලෝකයේ තවත් කෙනෙකුන් කෙරෙහි සැබෑ ඇල්මක් දැක්විය හැකි පුද්ගලයින් ලොව දුලභ හෙයිනි.

Saturday, October 1, 2016

Static Variables in Java

Static Variables , class එකකින් හදන සෑම instance එකකටම පොදුයි.එහෙමත් නැත්නම් එකම class එකකින් හදන objects සියල්ල share කරන්නෙ static variables වල එකම copy එකක්.

උදාහරණයක් විදිහට අපි මේ program එක අරගෙන බලමු.

-----------------------------------------------------------------------------------------------------------------
class MyClass{
            int x;
            static int y;
}
class MyExample{
         public static void main(String args[]){
                    MyClass c1=new MyClass();
                    c1.x=10;
                    c1.y=20;

                    MyClass c2=new MyClass();
                    c2.x=100;
                    c2.y=200;

                    MyClass c3=new MyClass();
                    c3.x=1000;
                    c3.y=2000;

                    System.out.println("c1 : "+c1.x+" "+c1.y);    // Line 1
                    System.out.println("c2 : "+c2.x+" "+c2.y);   //  Line 2
                    System.out.println("c3 : "+c3.x+" "+c3.y);   //  Line 3

         }
}



Figure 1


මෙහි x කියන්නෙ non-static variable එකක්. y කියන්නෙ static variable එකක්. එම නිසා variable y ,
MyClass නම් class සාදන සෑම instance එකකටම common property එකක්.

x object එකක් තුල සෑදෙන අතර y සෑදෙන්නේ template එක තුලය.

උදාහරණයක් ලෙස c1.x ලෙස call කල විට වෙනස් වෙන්නෙ MyClass class එකෙන් හැදුනු  c1 object instance එකෙහි x variable එක. 

ඒ අනුව c1 object එකෙහි x හි default value එක වෙලා තිබුණු 0 ට දැන් 10 assign වෙනවා.
ඒ විදිහටම c2 object එකේ x ට 100 ත් c3 object එකේ x ට 1000 ත් assign වෙනවා.

නමුත් y කියන්නේ ස්තතික් variable එකක් නිසා ,
                             c1.y=20 මගින් y හි අගය 20 ලෙසටත් ,
                             c2.y=200 මගින් ය හි අගය 200 ලෙසටත් 
                             c3.y =2000 මගින් ය හි අගය 2000 ලෙසටත් වෙනස් වෙනවා.

c1 , c2 , c3 instance object තුනෙන්ම access කරන්නේ MyClass template එකෙහි සෑදුනු y variable එකයි. දැන් අවසාන වශයෙන් y හි අගය 2000 යි;

මෙම ක්‍රියාවලිය සිදුවන ආකාරය figure1 මගින් පෙන්නුම් කරලා තියෙනවා.

එතකොට අපි උඩදී උදාහරණයක් විදිහට ගත්තු program එකේ output එක විදිහට අපිට ලැබෙන්නේ,

    Line1 print කරනවා  >>>   c1  :  10        2000
    Line2 print කරනවා  >>>   c2  :  100      2000
    Line3 print කරනවා  >>>   c3  :  1000    2000

Monday, September 26, 2016

Java Bean Classes


Here is a brief explanation about the characteristics of java bean classes.

We create a java bean class to represent a table in data base.
And the characteristics of java bean classes should be as follows.

1.class should be public
2.Attributes(fields) should be private
3.Constructor should be private
4.And at least there must be two constructors. The default constructor and the constructor which represent all the attributes by it's parameter list.
and the setters(mutator) and getters(accessors) should be public.

An example for java bean class:

public class Student{
private String stud_id;
private String stud_name;
private String stud_address;

public Student(){
}

public Student(String stud_id,String stud_name,String stud_address){
this.stud_id=stud_id;
this.stud_name=stud_name;
this.stud_address=stud_address;
}

public void set_stud_id(String stud_id){
this.stud_id=stud_id;
}

public String get_stud_id(){
return stud_id;
}

public void set_stud_name(String stud_name){
this.stud_name=stud_name;
}

public String get_stud_name(){
return stud_name;
}

public void set_stud_name(String stud_address){
this.stud_address=stud_address;
}

public String get_stud_address(){
return stud_address;
}
}

වීදි ප්‍රාර්ථනා

හරස් වීදිය - කෙළින් වීදිය
අසල කඩපිල මගේ නැවතුම
රැයද දහවල අව්ව වැස්සද
කම් නොවේ මට මගේ දිවියට

නගන හඬ පාසලේ සීනුව
දෙනෙත පුරවයි කදුලු වැලකින
නමුත් නොසැලෙයි මගේ හදවත
අදිටනින් තව තවත් පිරවෙන

කැදවමින් මා අයෙක් ඔහු වෙත
පවසමින් යම් වැඩක් සවණත
තබයි මුදලක් මා දෙඅත මත
සතුටු හැගුමක් සිතේ පැතිරෙන

දැඩියි හිරු රැස ගත පෙළාලන
ඉසිඹු නැත මට දා නිවන්නට
කැවෙන දෑසින් මඟ බැලූ කල
අපැහැදිලි වේ පෙනෙන මං පෙත

ඇරුණු පාසල , යනෙන සිසු කැළ
තබන පියවර කැටුව මාපිය
දවයි හදවත නුහුරු හැඟුමක්
සිතේ පැනයක් කොහිද මා මව

තෙමෙයි දෙකොපුල වැටෙන කඳුලින්
නින්ද අතරින් රැය පහන් වන
වීදි දරුවෙක් වුවද මා මඟ
නොයමි සිගමන් සවිය ඇත මට

ලබන්නට දිවියේ ජයක් ඇත
හද කොනේ පැතුමක් නොසෙල්වෙන
නොවන්නට පොලොවට බරක් මම
මිහිකතම සනසන දිය බිඳක් වෙමි හෙට

සෙබළෙකි මා රට දිනූ

රුදුරු අවි අත දරා රුපුන් නැසු විරු පිරිස
ජීවිතය පරදු කර උපන් බිම රැක දුන් සොඳින
ජීවිතේ තුන් යමම පුද කලා නුබ නමට
නෙතේ කදුලක් සිනාසෙන රඟ පසක් කර ඒ අතීතය

දෙපා අද අවසගයි මහපොලොව සිප ගන්න
දෑත මට අහිමි වී ඇත ගිනි අවිය අත ගන්න
දෙනෙත අභියස මැවී බොඳ වේ දිනූ විරු පදක්කම
කොතැනකද සැගවුනේ එදා නැගි ජන රැල්ල

ගෙතූ මල් දම් මහගු පැසසුම් සවන් පත් උතුරා ගලා ගිය
ගිලන් ඇද වට සිදුරු නොමැතිව සිටිය මිතුරන් කොහිද අද දින
ලොවට අමතක මිනිසෙකිය අද මහලු මව් පිය සමග තනිවුන
සිතින් නොවැටුනු කයින් බිඳලුනු එහෙත් එඩිතර සෙබලෙකිය මම

මගේ මව් බිම නිවහල්ය අද සැනසුමක් එය සිත නිවාලන
වැදූ මවටද දිනූ බිමටද ණය නොමැත විරු පුතෙකි අද දින
සිනාසෙන දන අසන් පසක් කර අතීතය මොහොතකට
රඟන්නට රඟ මඩල සැදුවෝ කියන් කව්රුන්ද නුබ හට .....