Skip to main content

Web vs Desktop vs Mobile Application Development

Sa isang forum na sinalihan ko. Karamihan, mga estudyante ang mga nagtatanong. Kung hindi nagtatanong ng magiging thesis nagtatanong kung ano ang magadang pag-aralan. Nag-bigay na rin ako ng tips sa isang post ko na Tips sa Thesis Defense. Gusto ko lang magbigay ng linaw kung bakit karamiha sa mga nagthethesis parepareho na lang ang system.

Desktop vs Web vs Mobile

Gaya ng nakwento ko, Mga 20 years ago kasaganaan ang windows o desktop based development. Visual Basic o Java ang kadalasang gamit na Programming Language. Medyo lumalayo na ang karamihan sa DOS base development. Isipin mo 20 years na yun pero ang mga system na ginagawa ng mga estudyante pare pareho parin. Paglaon ng panahon, yumabong na ang Technology sa bansa. Sa maraming bansa maraming ng gumagamit ng Internet. Susubukan kong ipagkumpara ang Desktop, Web at Mobile.

  1. Desktop
    • Dapat mong piliin ang Desktop kung gagamit ka ng mga Hardware Devices tulad ng Barcode scanner, RFID, Magnetic Strip scanner, at iba pa. Kalimitan kailangan ng special na software para gumana ang mga ito at kailangan na direktang nakakapag-usap ang hardware device sa software na kadalasang hindi kayang gawin sa Web. May mga technolohiya tulad ng Bluetooth na pwedeng gumana sa Mobile pero mas komplikao kesa sa pagdevelop ng desktop. At may kamahalan nag presyo ng mga wireless devices.
    • Magiging problema ang pagdevelop sa Desktop kung maraming gagamit ng system. Mahirap ang maintenance dahil kailangan mong i-install ang application mo sa bawat computer. At kung magkaproblema ang isang computer mahirap magtroubleshoot dahil ang iba't ibang computer ay iba iba ang configuration. Pwera na lang kung may device manager ang kompanya na pwedeng magcontrol sa applications ng isang computer ng employado. May isa rin paraan para maiwasan ang prolemang ito. Sa Visual Studio, may tinatwag na OneClick Install. Kung saan pwede kang pagpublish sa isang shared folder at sino mang may kailangan sa application ay pwede ng ii-install ito. Ang isang pang kagadanhan nito. Kung sakaling baguhin ang code. Pwede mong i-setup na mag-auto update sa tuwing i-oopen ang application. Nang sagayon laging updated ang version ng application dahil nag-o-auto-install ang update.
    • Ang isa pang maging problema sa Desktop ay nakasalalay sa programming language na gamit mo kung ang gagamit ng application mo ay iba't ibang Operating System o OS. Noon Ang VB6/VB.NET/C# ay gumagana lamang sa Windows. At ang Java or C/C++ ay gumagana sa karamihan ng OS, maaari siyang gumana sa Windows, Apple, o Linux. Ang .Net sa panahon ngayon ay maaari na rin gamiting sa ibang OS pero hindi kapareho ang kapasidad pagdevelop ng para lamang sa version ng Windows. Ang .NET na mamaring gumana sa ibang OS ay ang Mono Project o Mono.NET, maaari mo ring gamitin ang C# na kaalaman sa pagdevelop nito.
  2. Mobile
    • Depende rin sa target na Operating System ang pagdevelop ng Mobile Application. Sa ngayon ang popular na Operating System ay Android ng Google o IOS ng Apple. Dalawa rin ang klase ng application sa Mobile Native at Di Native. Ang Native app ay ang mga app na gawa sa programming language na makakapag control ng mga kakayahan ng phone. Sa ngayon Java sa Android at CoCoa o Objective-C sa IOS. Sa ngayon marami ng teknolohiya na guamamawa ng tinatawag na cross-platform mobile development. Ibig sabigin nito gagawa ka ng application at automatic ng makakagawa ng ibang version pare sa ibang OS. Maaari mo ring magamit ang web development skills mo sa tulad ng phonegap, o cordova na gumagamit ng Javascript. Ang Xamarin na binili ng Microsoft ay maaari na ring gumamit ng C# sa pagdevelop ng Android, Windows Phone at IOS. Ang isang kahinaan lang ng di Native app ay ang bilis at mga kapabilidad na tanging Native App lang ang makakagamit.
    • Tulad ng Web madali lang i-implement ang mobile applications. Ngunit hindi basta basta ang pag-iimplement ng mobile applications. Di tulad ng Desktop o Web ang Mobile Applications ay maaari mong i-install sa iba't ibang paraan.
      • Sa kaniya kaniyang AppStore, ibang ang AppStore ng Android (Play Store) at IOS (Apple Store). Ang problema lang bago ka makapag lathala ng app sa mga Store na ito ay kailangan mong magbayad ng developer's fee. Sa Android may fee na isang beses mo lang babayaran. Ngunit sa apple may taunang fee
      • Mobile Device Manager - isa itong application na ginagamit ng mga IT professionals na maaaring mag-control ng app na nasa device mo. Maaari ka rin na magsetup ng sarili mong AppStore na pagkompanya lang. Ngunit karamihan pang malakihang kompanya lamang ang gumagamit nito. Sa kadahilanang ito ang mga Device Manager Application ay mahal.
      • ii-install mo ng manual. Tulad ng desktop eto ang pinakapangit na pag-deploy ng app lalong lalo na kung halimbawa wala kayong Device Manager at kailangan mong mag-install ng parehong software sa 100 phones. Ang isang problema dito, sa IOS, hindi ka maaaring mag-install ng app na hindi sertipikado ng Apple. Kadalasan kailangan mong i-jail break ang phone. Ngunit sa paggawa nito mavovoid ang warranty ng device mo.
    • Tulad ng Web kadalas kailangan mo ng internet sa kung ang application mo ay maaaring gamitin sa loob at labas ng kompanya. At tulad din ng Web, maaari mo lang rin na sa kompanya lang ang data. Ngunit hindi maganda Imlementasyon ito.
  3. Web
    • Malaki na ang pinagbago ng Web Application. Noon ang web development ay para lamang makagawa ng web site na static. Ngayon, halos lahat ng kaya mong gawin sa Desktop ay maaari mo na ring gawin sa Web. Kaya eto ang isang platform na madalas kong imungkahi
    • Isa sa kagandahan nito ay Isang Configuration lang at code lang ang i-implement mo. At hindi mo na kailangang alalahanin kung ang computer ng gagamit ay magkakaiba. Kahit anong Operating System pwede hangga't may browser siya tulad ng Chrome, Internet Explorer, Firefox, Opera at Safari.
    • Ang masasabi kong isang potensyal na maging problema sa web application ay ang Browser, Ang Chrome at Firefox ang alternatibo sa Internet Explorer (IE) per dahil karamihan ng Computer ay Windows eto ang kadalasang gamit. Ang problema, iba ang technology ng IE at ibang browser. Iba standard. Kamakailan lamang sumuko ang Microsoft at ginamit na rin nila ang v8 Engine na parehong ginagamit ng Chrome. Dahil dito nagkaroon na ng standard ang web development.
    • Isang pa maaaring maging problema ng Web Application ay Hosting at Internet. Kapag kailangan mong ma-aaccess siya sa kahit saang lugar kailangan mo ng internet. At lalong lalo na kailangan mo ng Web Hosting o mapaglalagyan ng Web Application mo. May mga libre na pwede kang makuha pero kung ang data o impormasyo na kailangan mong i-proseso ay sensitibo kailangan mo ng Hosting na secured. Kadalasan ang mga libre ay may 'catch' o hindi mo nalalaman na kasunduan. Depende sa data na i-poproseso mo, kailangan mo rin ng mabilis na internet. Dahil kung walang internet, ang isang paraan mo lang na magagamit ito ay sa pamamagitan ng LAN o ethernet. Ang problema lang limitado ka lamang sa loob ng kompanya at ang ibang gagamit sa labas ng kompanya ay hindi makakagamit.


Iyan ang iba't ibang platform na pwedeng gamiting sa pagdevelop ng applications. Kaya't wag limitahin ang project sa Desktop application kung maaari.

Sa susunod na post ko ipapaliwanag ko ang konsepto ng Design Pattern. Isa ito sa pinakaimportante sa pagdevelop ng maganda at reliable na applications.

Comments

Popular posts from this blog

Di nyo na kailangan ng Isa pang computer para sa Server o web hosting

Kung hindi nyo kailangan ng totoong web hosting at domain sa Thesis nyo may technology na pwede nyo ng gamitin para mag-emulate ng parang tunay na server. Docker Containers. Ang containers ay isang feature sa Linux pero sumikat sa mga cloud server tulad ng AWS, Google o AZURE. Marahil dahil na rin sa kamahalan ng mg ito, imbis na mag renta ka ng limang server, kahit isang server lang pwede ka ng mag-implement ng maraming system. Ang Docker ay kahalintulad siya ng VMWare or ibang virtual machine. Para gumamit ng Virtual Machine, kailangan mong mag-allocate ng CPU, RAM at malaking disk space dahil ang paggamit nito ay parang isang computer. Ang problem dito ay kailangan mong hiwalay na ii-install ang Operating System ibig sabihin kailangan mo ng license. At kailangan mo rin iinstall at configure ang software na kailangan mo tulad ng Apache, IIS, SQL Server, mysql at iba pa para lang mapagana ang system mo. And Docker ay mas pinasimple. Bago ang lahat eto ang mga salita or Teminology ...

Ano nga ba ang Class sa Object Oriented Programming

Kung matatandaan ninyo sa dalawang naging post ko. Naipaliwanag ko ang Importansya ng Object Oriented Programmig at ang Principles of Object Oriented Programmig . At sa mga post na ito Kadalasan sa mga halimbawa ay ang Class at Object. Unahin muna natin ang pagkakaiba ng Object at Class Class Object Ang Class ay template or blueprint na ginagamit para makagawa ng Object Halimbawa Ang Object ay ang Halimbawa ng isang Class halimbawa Ang Class ay Grupo ng magkakaparehong Object Halimbawa: Hayop ...

Anong Computer ang dapat mong bilhin?

Nung college ako madalas akong tumambay sa Gilmore. Isang lugar sa Quezon City kung saan ang bilihan ng mga computer parts at kung tawagin Silicon Valley. Nung una, kumukuha lang ako ng price list at nangangarap na makabili ng computer piyesa kahit wala akong pambili. Natuto ako sa computer hardware dahil don. Minsan nakikipagbaliktaktakan ako sa mga tambay na gaya ko at napag-uusapan ang mga magagandang specs. Minsan nakikinig ako sa mga nag-iinquire. Makalipas ng ilang taon hindi pa rin naging madali sa akin ang bumili ng computer piyesa. Dahil na rin hindi biro ang presyo ng mga computer piyesa. Ang nakakatawa, kahit software developer ako, marami sa mga kakilala ko ang nagtatanong sa akin kung ano ang magandang bilhing computer. Kahit sa pag-aayos ng computer nila, sa akin sila humihingi ng tulong. Maganda rin kasi natututo ako. Ang di nila alam, ang software ay hindi tumitingin sa hardware, dahil ang alam lang nila ay ang Computer ay Computer. Ano nga ba ang specs ng magadang co...