iOS Tutorial – Begin with swift ( day 3 ) – Collection

รู้จักกับ Collection ใน swift นั้นจะมี collectionให้ใช้กัน 3 ประเภทหลักๆ คือ Array ซึ่งเป็น collection ที่เก็บข้อมูลตามลำดับ Set เก็บข้อมูลไม่เป็นลำดับ Dictionary เก็บข้อมูลไม่เป็นลำดับ เวลาทำการสร้าง collection แบบ Array, Set หรือ Dictionary ถ้าเราทำการสร้าง collection เหล่านั้นด้วย “var”(variable) collection นั้นจะถูกสร้างเป็นแบบ mutable คือสร้างมาปรับเปลี่ยนข้อมูลด้านในได้  แต่ถ้าเวลาสร้าง collection เหล่านั้นด้วย “let”(constant) แล้วละก็ collection ก็จะเป็นแบบ immutable คือไม่สามารถเปลี่ยนแปลงแก้ไขข้อมูลได้อีกแล้ว Array  จะสามารถเก็บค่าที่เป็นชนิดเดียวกันลงไป และเก็บข้อมูลแบบเรียงลำดับ ข้อมูลไหนมาก่อนใส่ก่อน ข้อมูลไหนมาหลังจะใส่ทีหลัง และ ค่าเดียวกันก็สามารถถูกบรรจุลงไปหลายครั้งใน collection เดียวกันได้การสร้าง Array ใน swift อาจใช้ Array<Element> Read more about iOS Tutorial – Begin with swift ( day 3 ) – Collection[…]

iOS Tutorial – Begin with Swift ( Day 2 ) – Control Flow

รู้จักกับ Control flow 1.Conditional statement ซึ่งทำการ execute กลุ่มของโค้ดตามเงื่อนไขต่างๆ เช่น ตามเงื่อนไขที่ให้มา ถ้าตรงตามเงื่อนไขให้แสดงผลว่าข้อมูลถูกต้อง ถ้าไม่ตรงตามเงื่อนไขให้แสดงข้อความแจ้งผลการผิดพลาด 1.1 if statement ใช้ evaluate เงื่อนไขที่มีจำนวนการแสดงผลลัพท์ที่ต่างกันไม่มาก if (a) then b else c ถ้า condition ใน a นั้นเป็นจริง b จะเกิดขึ้น ถ้า condition ใน a ไม่เป็นจริง c จะเกิดขึ้น สำหรับ condition นั้น operator ที่ใช้ได้ มีดังนี้ :-  < น้อยกว่า <= น้อยกว่าหรือเท่ากัน > มากกว่า >= มากกว่าหรือเท่ากัน == เปรียบเทียบว่าเท่ากัน Read more about iOS Tutorial – Begin with Swift ( Day 2 ) – Control Flow[…]

iOS Tutorial – Begin with Swift (Day 1) – รู้จักกับ Swift

2014 : Swift ถูกแนะนำให้รู้จักในงาน Apple World Developer Conference 2014 2015 : Swift ถูกเปิดให้เป็น Open Source ทำไมจึงต้องใช้ Swift? ทางผู้พัฒนาประกาศว่า Swift เองนั้นภาษาที่ใช้จะอ่านแล้วเข้าใจง่ายกว่า Objective-C, ทุกออบเจ็คใน Swift จะต้องประกาศชนิดของออบเจ็คเพราะฉะนั้น type safe, และมี environment ในการพัฒนาที่ดีกว่าสำหรับตัวนักพัฒนาเอง ฟีเจอร์ทั้งหมดที่มีใน Objective-C จะใช้ได้ใน Swift ทั้งหมด ทั้ง Objective-C และ Swift จะแปรเป็น machine code แบบเดียวกัน จะเขียน Swift ต้องมีอุปกรณ์อะไรบ้าง? จะพัฒนาโปรแกรมด้วยภาษา Swift อย่างแรกเลย ต้องมีเครื่องแมค จากนั้นก็ลง Xcode ซึ่งมีให้โหลดฟรีใน Appstore แล้วถ้าไม่มีเครื่องแมคล่ะ อยากลองศึกษาภาษา Read more about iOS Tutorial – Begin with Swift (Day 1) – รู้จักกับ Swift[…]

iOS App – FertilizerMate

FertilizerMate เป็นโปรแกรมช่วยในการคำนวณการผสมปุ๋ย เมื่อปุ๋ยบางสูตรหายากตามท้องตลาด เราสามารถใช้แม่ปุ๋ยมาใช้ผสมกันให้กลายเป็นสูตรปุ๋ยเฉพาะตามที่เราต้องการ ตัวอย่างเช่น เราต้องการใช้ปุ๋ยสูตร 16-16-16 จำนวน 300 กิโลกรัม เพื่อบำรุงต้นมะนาว แต่ด้วยความจำเป็นซึ่งอาจเป็นเพราะว่าเราไม่สามารถหาซื้อปุ๋ยสูตรนั้นในเวลาดังกล่าวอาจเนื่องจากปุ๋ยขาดตลาดหรือปุ๋ยผสมอาจมีราคาสูง ด้วยเหตุนี้เราจึงจำเป็นต้องผสมปุ๋ยเองโดยใช้แม่ปุ๋ยซึ่งเป็นปุ๋ยสูตรพื้นฐานที่อาจจะหาซื้อได้ง่ายกว่า แล้วนำแม่ปุ๋ยนั้นมาผสมตามอัตราส่วนที่พอเหมาะให้กลายเป็นปุ๋ยสูตร 16-16-16 ตามต้องการ ในที่นี้เราอาจผสมแม่ปุ๋ยโดยมีอัตราส่วนดังนี้ :- แม่ปุ๋ยยูเรีย 46-0-0 จำนวน 64 กิโลกรัม แม่ปุ๋ยไดแอมโมเนียมฟอสเฟต 18-46-0  จำนวน 104 กิโลกรัม แม่ปุ๋ยโพแทสเซียมคลอไรด์ 0-0-60 จำนวน 80 กิโลกรัม ฟิลเลอร์(filller) จำนวน 52 กิโลกรัม ด้วยอัตราส่วนนี้ เราสามารถผสมปุ๋ยเองสูตร 16-16-16 จำนวน 300 กิโลกรัม จากแม่ปุ๋ย 3 ชนิด ซึ่งส่วนผสมดังกล่าวได้ทำให้ปุ๋ยนั้นเป็นปุ๋ยที่มีอาหารเหมาะสมกับพีชที่เราทำการปลูก ด้วย FertilizerMate คุณเพียงแค่ทำการระบุ สูตรปุ๋ยที่คุณต้องการนำไปใช้กับพืชของคุณ และ จำนวนกิโลกรัมของปุ๋ยที่คุณต้องการ จากนั้นโปรแกรมจะทำการคำนวณ ปริมาณของแม่ปุ๋ยแต่ละชนิดที่ต้องใช้ Read more about iOS App – FertilizerMate[…]

ปัญหากับ UIRequiredDeviceCapabilities property

หลายคนอาจจะกำลัง submit application ขึ้น review อยู่ดีๆแต่ต้องเจอกับ error แบบนี้อย่างหลีกเลี่ยงไม่ได้ The app’s Info.plist can’t contain values for the UIRequiredDeviceCapabilities key that would prevent this app from opening on any iOS device. For more information, see Understanding the UIRequiredDeviceCapabilities Key. แล้วเราควรจะจัดการกับ Error ตัวนี้กันอย่างไรดี   ก่อนอื่นมารู้จักกับ UIRequiredDeviceCapabilities property กันก่อนว่าคุณลักษณะตัวนี้ไว้บอกถึงอะไร? UIRequiredDeviceCapabilities property เป็นค่าที่ไว้บอกคุณลักษณะของฮาร์ดแวร์บนอุปกรณ์นั้นๆที่จะอนุญาติว่าจะยอมให้แอพลิเคชันของเรานั้นสามารถเปิดขึ้นมาได้หรือไม่   ค่า Property อยู่ที่ไหน? ที่เก่าที่เดิม อยู่ที่ไฟล์ Info.plist Read more about ปัญหากับ UIRequiredDeviceCapabilities property[…]

พลังงานกับการเขียนโค้ด

สำหรับการทำงานเป็นนักพัฒนาสาขาต่างๆนั้น เราคงหนีไม่พ้นการนั่งอยู่หน้าคอมพิวเตอร์เป็นเวลานานๆ เขียนโค้ด แก้บั๊ก วางแผน เป็นงานหลักๆ ในแต่ละวัน เคยสงสัยกันไหมว่า การที่เรานั่งทำงานแบบนั้นในแต่ละวันร่างกายเราใช้พลังงานกันเท่าไรกันนะ ข้อมูลที่ 1 อ้างอิงจากข้อมูลด้านบน ข้อมูลแสดงให้เห็นว่าสำหรับคนที่มีน้ำหนักตัว 70 กิโลกรัม การที่เรานั่งทำงานแบบนี้นาน 1 ชั่วโมง ร่างกายเราใช้พลังงานไปเพียงแค่ประมาณ 105 แคลอรี่ต่อชั่วโมงเท่านั้นเอง ถ้าเราทำงาน 8 ชั่วโมง ในหนึ่งวันเราก็ใช้พลังงานไปเพียงแค่ 840 แคลอรี่เท่านั้นเอง เปรียบเทียบกับข้อมูลด้านโภชนาการแล้ว  การที่เราทานแฮมเบอร์เกอร์ใส่ชีส ซึ่งให้พลังงานงานถึง 704 แคลอรี่ เท่ากับว่า เราต้องนั่งทำงาน 7 ชั่วโมง ถึงจะสามารถเผาพลาญแฮมเบอเกอร์ก้อนนั้นไปได้    หรือถ้าเราดื่มโค้ก 1 กระป๋อง เราก็ต้องนั่งทำงานตั้ง 2 ชั่วโมงถึงจะใช้พลังงานนั่นหมด เรื่องพลังงานที่เราใช้ไปต่อวันกับอาหารที่เราทานไปนั้น ก็เป็นเพียงปัจจัยหนึ่งเท่านั้นเองที่มีผลต่อสุขภาพของเรา เพราะการที่เราบังคับร่างกายให้นั่งทำงานแบบเดียวกันนานๆ ติดต่อกันโดยไม่ปล่อยให้ร่างกายได้ทำกิจกรรมอื่นสลับไปบ้างนั้น อาจส่งผลให้มีความเสี่ยงในการเป็นโรคอ้วน หรือโรคหัวใจถามหาเราอีกด้วย แม้บางคนอาจจะมีตารางออกกำลังกายประจำวันอยู่แล้วไม่ว่าตอนเย็นหรือตอนเช้านั่นเป็นสิ่งที่ดี แต่ก็ยังไม่เพียงพอ เพราะถ้าในหนึ่งวันเราบังคับให้ร่างกายเรานั่งทำงานอยู่กับที่ท่าเดียวไม่เปลี่ยนกิจกรรมทำบ้าง นั่นก็ย่อมส่งผลเสียต่อร่างกายในระยะยาวเช่นกัน การเปลี่ยนอิริยาบถ ระหว่างการทำงาน Read more about พลังงานกับการเขียนโค้ด[…]

Safari กับตัวคอนโทรลเสียง

หลังจากอัพเดท Safari ครั้งล่าสุด Version 9.0 (10601.1.56.2) ความเปลี่ยนแปลงหนึ่งที่สังเกตุได้คือ เวลาเราเปิดเวป sound media อย่างเช่น youtube เราจะเห็นไอคอนรูปลำโพงเล็กๆ เพิ่มขึ้นมาที่ description ของ tab นั้นๆ ตามรูป แม้ว่าเราเองจะยังไม่ได้ active อยู่ที่แทปที่เราเปิด youtube อยู่ก็ตาม แต่ตัวคอนโทรลตัวนี้ก็ยังตามเราไปอยู่ และเราสามารถเลือกที่จะเปิดปิดเสียงของสิ่งที่เรากำลังเล่นอยู่ได้ จะเห็นว่า ฟีเจอร์นี้อำนวยความสะดวกให้ผู้ใช้ที่ชอบฟังเพลงหรือดู youtube ไปพร้อมกับการทำกิจกรรมอย่างอื่นเป็นอย่างยิ่ง หากเราอ่านหนังสือไปด้วยฟังเพลงไปด้วย เมื่อไรก็ตามที่เราต้องการจะปิดเสียงนั้นเราก็สามารถทำได้ทันทีไม่ว่าเราจะกำลังทำงานอยู่แทปไหน คิดไปแล้ว ก็เหมือนว่า Safari อาจจะสนับสนุนให้คนแอบฟังเพลงขณะทำงานเหมือนกันนะนี่ เพราะเวลาหัวหน้ามาที่โต๊ะ เราก็สามารถแอบปิดเพลงได้ทันทีไม่ว่าเราจะอยู่แทปไหนก็ตาม

อัพโหลดแอพลิเคชันของเราขึ้นรีวิวด้วย Application Loader

วันนี้เราจะลองมาเอาไฟล์แอพลิเคชันที่ทำเสร็จแล้ว(.ipa) ขึ้น iTunes connect เพื่อรอรีวิวกัน โดยการใช้ Application Builder เริ่มต้นเปิด XCode และเราต้องทำการเสียบอุปกรณ์จริงที่ปกติเราใช้ทดสอบเข้าไปก่อน จากนั้นก็ให้เลือกที่อุปกรณ์ตัวนั้น ไปที่เมนู Product แล้วเลือก Archive เพื่อจะทำการ build แอพลิเคชันของเรา หลังจากเลือก Archive เสร็จเรียบร้อยแล้ว โปรแกรมจะใช้เวลาสักระยะหนึ่งเพื่อทำการสร้างไฟล์แอพลิเคชัน เมื่อเสร็จเรียบร้อยแล้วโปรแกรมจะแสดงหน้าตาดังรูปด้านล่าง (ก่อนอื่นเราก็ทำการเลือก Validate… ไฟล์แอพลิเคชันที่เราสร้างขึ้นมาเสียก่อนเพื่อตรวจสอบความสมบูรณ์ของไฟล์ที่ เราทำการสร้างขึ้นมา ) อันที่จริงแล้วเราสามารถจะเลือก Submit to App Store เพื่อเอาไฟล์แอพลิเคชันนี้ขึ้นไปโดยตรงเลยก็ได้ แต่ในวันนี้เราจะมาลองอีกวิธีคือการใช้โปรแกรม Application Loader ในการนำไฟล์ขึ้นไป เราจึงขอไม่ใช้วิธีนี้แล้วกัน แต่เราจะทำการเลือก Export… แทนเพื่อนำเอาไฟล์แอพลิเคชันของเราออกมา เตรียมรอไว้ก่อน จากนั้นทำการเลือก Save for Ad Hoc Deployment การเลือกแบบนี้เราจะได้ไฟล์แอพลิเคชัน(.ipa) ออกมาซึ่งเราจะนำไฟล์นี้ ไปติดตั้งในอุปกรณ์อื่นๆ ที่เราต้องการจะทดสอบก็ได้ จากนั้นเราก็ทำการเลือกไฟล์ Read more about อัพโหลดแอพลิเคชันของเราขึ้นรีวิวด้วย Application Loader[…]

App Transport Security กับ iOS9

หลายคงอาจจะเจอฝันร้ายไปแล้วหลังจากอัพเดท xcode 7.0 ตัวใหม่ แล้วจัดการรันแอพลิเคชันของคุณใน simulator เพื่อจะทดสอบแอพลิเคชันตัวเก่าที่ใช้งานอยู่ แต่อยู่ดีๆ ข่าวร้ายก็มาเคาะประตูบ้าน “เอ๊ะ แอพลิเคชันเรามีปัญหารึเปล่านะ server เรามีปัญหารึเปล่านะ ทำไมข้อมูลไม่ขึ้นมาหล่ะ แต่เอ๊ะเมื่อวานเรายังรันแอพอยู่ได้สบายๆ อยู่เลย โค้ดเราก็ยังไม่ได้แก้อะไรเลยนะ” หลังจากดูอาการแล้ว ก็เหมือนว่าจะไม่มีอะไรที่ทำให้เกิดปัญหา error ก็ไม่ขึ้นมา เช็คดู server ใช้ tool เรียก service แล้วก็ดูเหมือนจะทำงานเป็นปกติ, รีสตาร์ท เครื่องก็แล้วหรือบางคนอาจจะลามไปจุดธูป จุดเทียนบนกับคุณพระคุณเจ้า ปัญหานี้ก็ยังแก้ไม่หาย หลับไปแล้วตื่นมาปัญหาก็ยังอยู่ แล้วปัญหานี้มันมาจากไหนหล่ะ ใน iOS9 เพิ่มเติมสิ่งที่เรียกว่า App Transport Security ข้อเรียกสั้นๆ ว่า ATS เข้ามาเป็น default behavior ของแอพลิเคชัน สิ่งนี้มันคืออะไร? ก็ตามชื่อมันเลยนั่นแหละ นั่นก็คือ ทำให้แอพลิเคชันนั้นสามารถรับส่งข้อมูลได้ปลอดภัยมากขึ้น แล้วมีอะไรเปลี่ยนแปลงล่ะ? เมื่อต้องการให้การรับส่งข้อมูลปลอดภัยขึ้น เพราะฉะนั้นโดย default Read more about App Transport Security กับ iOS9[…]

เมื่อต้องการ UDID ของ iPhone แบบไม่ต้องเปิด iTunes

โดยปกติแล้วนักพัฒนาส่วนใหญ่เมื่อต้องการจะดึงข้อมูล UDID ของอุปกรณ์ที่จะใช้ทำการทดสอบ ส่วนใหญ่แล้วต้องเอาอุปกรณ์ต่อเข้ากับคอมพิวเตอร์ก่อน หลังจากนั้นทำการเปิด iTunes แล้วกดเข้าไปตรงส่วนข้อมูล เพื่อจะดึงเอาข้อมูล UDID ของเครื่องนั้นออกมา แต่รู้ไหมว่า แม้ไม่ต้องเปิด iTunes เราก็สามารถดึงข้อมูลของ UDID นั้นออกมาได้เหมือนกัน แต่วิธีนี้สิ่งที่เราต้องมีคือคอมพิวเตอร์ที่ลง Mac OS เริ่มต้นด้วย – ทำการเสียบอุปกรณ์ของเราเข้ากับคอมพิวเตอร์ – ไปที่โลโก้ Apple ตรงมุมบนซ้ายของจอ – เลือก About This Mac – ไปที่ Overview แทป แล้วเลือก System Report – ตรงคอลัมน์ด้านซ้าย ให้หาเมนูชื่อ USB หลังจากเลือกมาแล้ว ทางด้านขวาจะปรากฏรายละเอียดของอุปกรณ์ที่เชื่อมต่อ USB อยู่ ให้มองหา iPhone – ภายใต้หัวข้อ iPhone ข้อมูล Serial Number นี่แหละ Read more about เมื่อต้องการ UDID ของ iPhone แบบไม่ต้องเปิด iTunes[…]