Search in Devinthailand

Saturday 21 May 2011

tet

<br>




<b> test

Wednesday 18 August 2010

เริ่มต้นการพัฒนา Application บน Android ภาค 1

ขั้นตอนแรกก่อนการพัฒนา Application บน Android เราจะต้องติดตั้ง Tools ในการพัฒนาก่อนดังนี้ครับ

  1. ดาวน์โหลด Tools ที่ใช้ในการพัฒนามาก่อนครับตาม link ข้างล่างนี้เลย
    •  ติดตั้ง Java SDK บนเครื่องคิมพิวเตอร์เราก่อนครับ โดยดาวน์โหลดได้จาก http://www.java.com/en/download และทำการติดตั้งครับ
    • ดาวน์โหลด Tools ที่ใช้เขียนโปรแกรมซึ่งเราจะใช้ Tools ที่ชื่อว่า Eclipse ดาวน์โหลดได้ที่ http://www.eclipse.org/downloads/
     2. ติดตั้ง Android Development Tool Eclipse Plug-in บน Eclipse ซึ่งจะช่วยให้เขียน Android ได้ง่ายขึ้น
    •   เปิดโปรแกรม Eclipse ถ้าโปรแกรมถาม Work Space ให้ใช้ค่า default ไปก่อน
    • คลิกที่เมนู Help > Install New Software
    • หลังจากนั้นติ๊กเครื่องหมายถูกในช่อง Android developer ให้หมดตามรูป
      • คลิก Next --> Next --> เลือก “I accept the term of the license agreement.” แล้วกดปุ่ม Finish รอใฟ้ ADT ติดตั้งเสร็จประมาณ 3-5 นาที
      • เมื่อติดตั้งเสร็จให้ทำการ Restart Eclipse ใหม่อีกครั้งครับ
      • เมื่อ Restart เเล้วจะมี Icon ของ Android โผล่ขึ้นมาบน Menu bar

      • หลังจากนั้นคลิกที่เมนู Window --> Preference
      • คลิกที่แถบ Android โปรแกรมมันจะขึ้นเตือนว่ายังหา Android SDK ไม่เจอ
         
      • ให้เราใส่ path ที่เก็บ Android SDK ที่เราดาวน์โหลด ตามตัวอย่าง  D:\Programming\Android\android-sdk-windows แล้วกด OK
      • หลังจากนั้นเลือกเมนู Window --> Android SDK and AVD manager แล้วเลือก Available packages หลังจากนั้นเลือก package ที่จะติดตั้ง เช่น SDK android platform 2.1 

      • หลังจากเลือก package ที่จะติตั้งแล้วให้กดปุ่ม --> Install selected --> Accept all --> Install รอให้ติดตั้งเสร็จแค่นี้เราก็สามารถเขียนโปรแกรมบน Android ได้เเล้ว 
                การพัฒนา Application บน Android ยังไม่จบเพียงแค่นี้ แล้วผมจะกลับมาเขียนใหม่ในหัวข้อ เริ่มต้นการพัฒนา Application บน Android ภาค 2 ครับ

      Tuesday 17 August 2010

      Hello World กับ Objective C (Part 2)

      สวัสดีครับ วันนี้มาเริ่มเขียนกันนะครับโดยมาSay Hello World กันก่อน


      1)มาสร้าง Project กันเลยครับ เลือก Application
      แล้วเลือก Command Line Tool'
      แล้วก็กด Choose เลยครับ







       2) เมื่อขึ้นมาอย่างงี้ก็ให้ใส่ชื่อ Project ไปเลยครับ
      อย่างเช่นตัวอย่างก็ "HelloWorld" ไปเลย แล้วก็กด Save








      3) จากนั้นก็เลือกไฟล์ HelloWorld.m
      ใส่โค้ดไปตามนี้


      #import < Foundation/Foundation.h >

      int main (int argc, const char * argv[]) {


      // insert code here...
      NSLog(@"Hello, World! by Devinthailand");


      return 0;

      }




      4)เมื่อกด Command + Shift + R ก็จะมี Console ขึ้นมา

      จากนั้นก็กด Command + R อีกทีเพื่อรัน จะได้ตามรูปครับ

      เรามาอธิบาย Code กันครับ
      NSLog(@"Hello, World! by Devinthailand");

      NSLog คืออะไร จริงๆแล้วมันก็คือMethod Print ใน Objective C นัั่นเอง
      ซึ่ง ถ้าเป็น ภาษา C ก็คือ printf() หรือ ภาษาจาว่าก็ System.out.println();
      NSLog ถูกวิพากษ์วิจารณ์ว่าเป็น Method ที่มีการตั้งชื่อได้แย่มากเพราะคำว่า "Log" ซึ่ง Programmer บางคนหรือคนทั่วไปอาจจะไม่ Make sense กับคำว่า "Log" ที่ใช้สำหรับ Print ออกมาทาง Console
      ส่วน"NS"ย่อมาจาก NextSTEP ซึ่งเป็น Toolkit ของบริษัท NeXT Software ก่อนที่จะถูก Apple เข้ารวบรวมกิจกรรมในปี 1996

      ส่วน
       return 0;
      คือการบอก Compiler ว่าเสร็จแล้ว

      Saturday 14 August 2010

      เเนวคิด API

                
                 API คือ Application Programming Interface เป็นกลุ่มฟังก์ชัน คลาส ขั้นตอน ที่ระบบปฏิบัติการหรือผู้ให้บริการสร้างขึ้นมา เพื่อให้โปรเเกรมอื่นๆ สามารถเรียกขอข้อมูลได้ API เเบ่งเป็น 2 เเบบ คือ
      • API ที่ขึ้นกับภาษา หมายถึง API ที่สามารถเรียกใช้จากโปรเเกรมที่เขียนด้วยภาษาใดภาษาหนึ่งเท่านั้น
      • API ที่ไม่ขึิ้นกับภาษา หมายถึง API ที่สามารถเรียกใช้จากโปรเเกรมที่เขียนด้วยภาษาใดก็ได้
      API นั้นมีหลายแบบและแตกต่างกันมาก ทั้งในเรื่องของภาษาในการเขียนโปรแกรมออกมาและการเรียกใช้งาน และอย่างอื่นอีกมากมาย แต่ที่ใหญ่ๆ ก็ 2 ตัวที่บอกไปเนี่ยแหละ API เองถูกประยุกต์ใช้มนานาแล้ว เเต่ติดปัญหาที่ภาษาในการเรียกใช้ซะมาก การที่จะเรียกใช้ API ที่เขียนขึ้นมาได้จึงต้องเขียนภาษาเดียวกันจึงจะเรียกใช้กันได้ ข้ามสายพันธ์ไม่ได้่เลยทีเดียว ช่วงหลังๆ ได้มี XML ซึ่งเป็นภาษาในการแลกเปลี่ยนข้อมูลทำให้ข้อจำกัดพวกนี้หายไป เขียนอะไรก็ได้ gen ออกมาให้เป็น XML ให้ได้ก็พอ ส่วนอีกฝ่ายก็จะเขียนโปรแกรมสำหรับอ่าน XML แล้วนำ data เอาไปใช้ แค่นั้นเอง ปัจจุบันเว็ปไซต์ต่างๆมีการปล่อย API เพื่อให้นักพัฒนาสามารถนำ API เหล่านั้นไปพัฒนาสร้า่งเเอปพิเคชั่นต่อได้ ตัวอย่างเช่น http://apiwiki.twitter.com/

      มารู้จักกับศัพท์ในวงการ Android กันครับ

               
                ตอนนี้ผมเพิ่งเริ่มศึกษาเจ้าตัว Android ประมาณอาทิตย์กว่าๆเองครับ เพราะเห็นว่ามันน่าสนใจดีและอีกอย่างต้องใช้ในโปรเจคจบด้วย เอาเป็นว่ามาเริ่มเรื่องกันเลยดีกว่า ในวงการ Android มีศัพท์เฉพาะหลายๆคำที่คนในวงการพูดกัน ซึ่งคำบางคำอาจจะมาจากความเข้าใจของผมเอง ถ้าผิดพลาดประการใดก็ขออภัยด้วยครับ เริ่มกันเลย

      Rom- คือ ตัว Operating System ที่ใช้ในมือถือเรานั่นแหละครับ เสมือน Windows ที่ใช้ในคอมพิวเตอร์อ่ะครับ Rom เวอร์ชั่นเดียวกันอาจจะใช้ร่วมกับมือถือรุ่นอื่นๆไม่ได้ ซึ่งมีหลายเหตุผล เช่น ปัญหาของ Driver ครับ

      Brick - ศัพท์นี้แปลว่า ก้อนอิฐ ซึ่งก็เหมือนอิฐที่เอาไว้ปาแหละครับ มักเจอในคำเตือนของการอัพเดตที่มีความเสี่ยง เนื่องจาก หากผิดพลาด มือถือของเราอาจกลายสภาพเป็นเพียงก้อนอิฐได้

      Root - คือการทำเพื่อให้เราเข้าถึงความสามารถจริงๆของแอนดรอยด์ได้ก็คือ สามารถใช้คำสั่งในระดับ Super User ได้ แต่บางความสามารถ อาจเป็นอันตรายต่อระบบได้ จึงไม่เปิดให้ใช้ จึงเป็นเหตุผลที่ค่ายมือถือส่วนใหญ่ จะตีเครื่องให้หมดประกัน ทันทีที่เราทำการ root

      ข้อดีของการ root
      • มีสิทธิ์เหมือนเป็น Super Administrator
      • สามารถใช้แอพบางตัวที่ต้องการสิทธิ์ root ได้ เช่น CacheMate
      • เพื่อจะได้ Patch Rom ทำ App2SD ได้ เป็นต้น
      • เพื่อให้ใช้คำสั่ง adb ได้
      ข้อเสียของการ root
      • ทำให้หมดประกัน
      • ความสามารถบางอย่างมีความเสี่ยง มือถืออาจ Brick ได้
      A2SD - คือการติดตั้งแอพพลิเคชั่นลงบน SD Card. ซึ่งแอนดรอยด์ส่วนใหญ่จะไม่มีความสามารถนี้ เนื่องจากเหตุผลด้านความปลอดภัย หากอยากทำได้ ต้องทำการ Patch Rom ซึ่งวิธีการจะแตกต่างกันไป ตามเวอร์ชั่นของ Rom ที่ใช้

      ABD - คือ รันคำสั่ง Linux เข้ามือถือเรา เพราะ Andriod พัฒนามากจาก Linux จึงใช้คำสั่งต่างๆคล้ายๆ Linux เช่น adb push fonts/system/fonts --> สั่ง up font เข้ามือถือ

                สำหรับวันนี้ก็ขอแค่นี้ก่อนน่ะครับ หลังจากนี้ไปศึกษา Android เพิ่มเติมและนำมาเขียนบทความเพิ่มอีกครับ



      Sunday 8 August 2010

      ทำความรู้จักกับ Google Android


             ปัจจุบัน Google ไม่ได้พัฒนาในส่วนของ Search engine ที่เราใช้ค้นหาข้อมูลกันอยู่ทุกวัน แต่ปัจจุบัน Google ได้เป็นผู้พัฒนา Platform ของโทรศัพท์มือถือที่มีชื่อว่า Android คำว่า Platform ก็เหมือนกับระบบปฎิบัติการที่เราใช้กันอยู่ในคอมพิวเตอร์ปัจจุบัน เช่น Windows ,Linux , หรือ Mac เพียงแต่ Android นั้นเป็น Platform ที่รันอยู่บนมือถือนั่นเอง พูดง่ายๆก็เหมือนกับ Symbian , Windows Mobile ที่เป็นระบบปฎิบัติารในมือถือนั่นแหละ Android คือ Platform ที่ Google พัฒนาออกมาเพื่อแข่งกับ Platform ก่อนหน้านี้ เจ้าตัว Android มีพื้นฐานการทำงานมาจากระบบปฎิบัตการ Linux โดย Android ใช้องค์ประกอบที่เป็น Open Source หลายอย่าง เช่น Linux Kernel , SSL , SQLite, Webkit และยังเขียนด้วยไลบารี่เฟรมเวิร์คของตัวเองเพิ่มเติม ซึ่งทั้งหมดเป็น Open Source ใช้ (Apache License) ในการเผยแพร่ สรุปก็คือ Android เป็นระบบปฎิบัติการที่นำทีมโดย Google บนพื้อฐานของ Linux ที่ใช้บนโทรศัพท์มือถือ  ข้อดีของ Android ก็คือ ความที่Android เป็น Open Source ซึ่งเปิดให้ใครก็ได้สามารถพัฒนา Application ต่างๆบน Android ได้อย่างอิสระโดยไม่เสียค่าใช้จ่ายใดๆทั้งสิ้น และนี่ก็เป็นเหตุผลหนึ่งที่ว่าทำไมปัจจุบัน Android มีแนวโน้มการพัฒนาจาก Developer และ การใช้มากขึ้นเรื่อยๆ และยังมีแนวโน้มเพิ่มขึ้นในอนาคตอีกด้วย โดยปัจจุบัน Android เริ่มเป็นส่วนแบ่งทางการตลาดของ IPhone และ มือถืออื่นๆมากขึ้น


      ตัวอย่างหน้าตาของ Android


      Friday 30 July 2010

      Macports installไม่ได้ แก้ยังไงดี

      วันนี้ผมจะเขียนโปรแกรมโดยใช้ perl เรียกใช้ cURL แต่ดันไม่มี
      เลยต้อง install macports ซะหน่อย
      ก็ไปดาวน์โหลดfile install แบบ wizard มา
      แต่พอลงแล้ว
      sudo port --version
      dlopen(/opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib, 10): no suitable image found.  Did find:
          /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib: mach-o, but wrong architecture
          while executing
      "load /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib"
          ("package ifneeded Pextlib 1.0" script)
          invoked from within
      "package require Pextlib 1.0"
          (file "/opt/local/bin/port" line 40)
      เรียกใช้งานไม่ได้
      เลยต้องลงใหม่
      เปิดเข้า terminal เลยครับ จากนั้นพิมพ์ sudo su root ใส่ password ให้เรียบร้อย
      หาที่ไว้สำหรับ download ไฟล์จาก svn ส่วนผมเลือก /Users/xxx/
      จากนั้นพิมพ์
      svn co http://svn.macports.org/repository/macports/trunk/base/ macports-svn
      รอซักครู่
      เมื่อดาวน์โหลดเสร็จ ก็เข้าไป folder macports-svn
      ด้วยคำสั่ง cd macports-svn
      แล้วตามด้วย ./configure && make && make install;
      รอซักพัก
      เมื่อเสร็จแล้ว ก็ sync ข้อมูลจาก server ด้วยคำสั่ง sudo port -d sync

      เมื่อเสร็จแล้ว จะขึ้นประมาณนี้
      sent 312205 bytes  received 11092961 bytes  57747.68 bytes/sec
      total size is 26320418  speedup is 2.31
      DEBUG: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/ports/PortIndex_darwin_10_i386/PortIndex /opt/local/var/macports/sources/rsync.macports.org/release/ports
      receiving file list ... done
      PortIndex

      sent 58 bytes  received 938694 bytes  34136.44 bytes/sec
      total size is 4036551  speedup is 4.30
      Creating port index in /opt/local/var/macports/sources/rsync.macports.org/release/ports

      Total number of ports parsed:    0
      Ports successfully parsed:    0
      Ports failed:            0
      Up-to-date ports skipped:    7257

      เป็นอันว่าเสร็จส่วนจะ install อะไรเพิ่มก็เลือกจาก
      http://perl.darwinports.com/ นะครับ
      ส่วนผมก็ จัด cURL ด้วยคำสั่ง sudo port install curl
      รอซักพักก็เป็นอันว่าเสร็จ