สรุปงาน Kotlin Workshop @ Pronto Marketing

Jedsada Tiwongvorakul
20Scoops CNX
Published in
4 min readAug 31, 2017

เมื่อวันจันทร์ที่ 17 กรกฎาคม 2560 เวลา 15.00 น. ได้เกิดปรากฎการณ์ขึ้นกับ Event หนึ่งที่ชื่อว่า Kotlin Workshop ซึ่งเปิดให้จองที่นั่งเพียงแค่ 40 ที่นั่งเท่านั้น โดยผ่านทาง Eventbrite เหตุการณ์ดังกล่าวก็คือ บัตรหมดภายใน 1 นาที WTF!

แต่สุดท้ายเจ้าของบล็อคก็ฝ่าฟันจนได้มันมา เพราะเสี่ยงตายโดยการไม่ได้ทำงาน นั่งกด F5 รัวๆ เจ้าของบล็อคเลยอยากเอาภาพบรรยากาศของงาน มาให้ชมสำหรับคนที่พลาดงานนี้ว่าเป็นยังไงบ้าง ไปดูกันเลยครับ ปู้น ปู้น 🚀

สถานที่จัดงาน @ Pronto Marketing

เขาไม่ได้จ่ายให้เจ้าของบล็อคนะ

สถานที่ก็ดูดีมีสไตล์ เหมาะกับคนที่ออกแนวชิคๆอย่างเจ้าของบล็อคมากเลยทีเดียว และที่ในภาพจะสังเกตว่าไม่มีคนเลยสักคน คือ เจ้าของบล็อคมาถึงงานเป็นคนแรกดู เหมือนเป็นนักเรียนดีเด่น ฮ่าๆ

แต่ความจริงก็คือ เจ้าของบล็อคมาจากต่างหวัดต้องเดินทางเช้ามาก และระหว่างการเดินทางสิ่งที่กังวลมากที่สุดคือกลัวหลงทางมาก… ความฝันก็กลายเป็นจริง โอ้ยชีวิต และระหว่างที่หาทางออกจากเขาวงกตอยู่นั้น เพลงทางกลับบ้านก็ดังขึ้นมาในหัว สุดท้ายเดินวนอยู่แถวนั้นประมาณครึ่งชั่วโมง เกือบร้องไห้ละนะ 😂

เหล่าบรรดาทีมงาน และ Speaker ภายในงาน (เทพๆ ทั้งนั้น)

เจ้าของบล็อคขอไม่เล่าชื่อเสียงเรียงนามของทีมงานละกัน เพราะหากใครที่กำลังศึกษาเจ้า Kotlin คงเห็นพวกพี่ๆ เขาผ่านจากบทความมาบ้างแล้ว อาทิเช่น

แต่จะมาบอกว่าพวกพี่ๆเขา Friendly มาก ส่วนความเทพนี่ไม่ต้องพูดถึงแถมยังสอนสนุกมีมุขให้ขำจนเจ้าของบล็อคเยี่ยวเล็ดตลอดงานเลย 😆😆😆

เนื้อหาภายในงาน

ซึ่งเนื้อหาที่พวกพี่ๆ Speaker ได้จับยัดมัดรวมกันมาภายในเวลาประมาณ 5 ชั่วโมง ก็จะแบ่งออกเป็น 4 หัวข้อด้วยกันดังนี้

  1. Introduction to Kotlin โดย พี่ Air (Android Developer @ Agoda)
  2. พาสร้างแอพฯแอนดรอย์โดยใช้ภาษา Kotlin ทำงานร่วมกับ Java โดย พี่ Dew (โอ้ย ตำแหน่งยาว… หัวข้อนี้บอกเลยโคตรฮ่า)
  3. ความมหัศจรรย์ของ Standard Library ของเจ้า Kotlin (miracle-of-stdlib) โดยพี่ Pop (Android ❤ Kotlin @ ShopSot) และพี่ Ju (Android Developer @ Agoda) หัวข้อนี้ได้รู้ซึ่งถึงความสามารถที่ Java ไม่มีเยอะมาก
  4. ดินแดนมหัศจรรย์ของ KotlinJS และ Native โดยพี่ Bebe (Kotlinain@Genxas) โดยในส่วนนี้จะพามารู้จักความสามารถของ Kotlin ที่นอกเหนือจากเอาไว้เขียนแอพฯแอนดรอย์

เอาล่ะ ก็พอจะรู้คร่าวๆว่าภายในงาน Workshop Kotlin นั้นว่ามีเนื้อหาอะไรบ้าง และ แต่ละส่วน Speaker คนไหนเป็นอธิบาย เดี๋ยวต่อไปจะขอลงรายละเอียดในส่วนของเนื้อหาในแต่ละส่วนกันอีกสักหน่อย ไปดูกันเลย 😎

เริ่มจากหัวข้อที่ 1 Introduction to Kotlin

ขอโทษด้วยนะครับรูปนี้ดีสุดละ ฮ่าๆ

ในหัวข้อนี้ก็จะอธิบายถึงตัวของ Kotlin เบื้องต้นว่ามีรูปร่างหน้าตา, Syntax และจุดขายของเจ้า Kotlin รวมไปถึงมีการเปรียบเทียบโค้ดระหว่าง Kotlin กับ Java ว่ามีความแตกต่างกันมากน้อยแค่ไหน โดยจะมีรายละเอียดดังนี้

  • การประกาศตัวแปรของ Kotlin
  • ความแตกต่างระหว่าง val กับ var
  • การสร้าง Class & Properties และ Object (ไม่มี keyword new แล้ว)
  • ความหมายและการใช้งานของ Lazy ใน Kotlin
  • ความหมายและการใช้งาน Safety Null (จุดขายของ Kotlin เลยนะข้อนี้)
  • ความแตกต่างระหว่าง Constructor และ Initialize block
  • การใช้งานพวก Functional Programming (FP) เช่น การใช้งาน Lambda (Anonymous functions) และ Higher order functions
  • ฯลฯ

สามารถเข้าดูเนื้อหาของแต่ละหัวข้อได้จากสไลด์ด้านล่างนี้เลย 👇

หัวข้อที่ 2 สร้างแอพฯแอนดรอย์โดยใช้ภาษา Kotlin

#TeamBlacklen

ในส่วนหัวข้อนี้ก็จะพาเริ่มตั้งแต่การติดตั้ง Plugin ของ Kotlin ใน Android Stuido กันเลยทีเดียว แต่ประเด็นที่แท้จริงของหัวข้อนี้คือ การสร้างแอพแอนดรอย์โดยใช้ภาษา Kotlin ซึ่งทาง Speaker ก็จะเตรียมตัวโปรเจ็คให้ผู้ร่วมงานอยู่แล้ว แต่ก็จะมีบางส่วนที่การทำ //TODO ไว้เพื่อให้คนภายในงานได้มีส่วนร่วมซึ่งแต่ละ //TODO
ก็จะมีเวลาให้ทำไม่เกิน 3–4 นาที ปล.ถ้าจำไม่ผิด ละถ้าหากใครทำเสร็จก่อนก็รับของรางวัลไปเลยย 🎊 🎉

ของรางวัลดีต่อสุขภาพเอามากๆ

และหัวข้อนี้จะมีจุดเด่นตรงที่ว่าในโปรเจ็คจะมีไฟล์ .java และไฟล์ .kt ปะปนกันอยู่ เพื่อเป็นการแสดงให้เห็นว่ามันใช้งานร่วมกันได้นะ และมีวิธีเรียกใช้แบบนี้นะ ซึ่งปลายทางก็คือ ทำการเปลี่ยนไฟล์ .java ให้เป็นไฟล์ .kt เพื่อทำให้รู้ว่าเห้ยโค้ด java ที่เขียนแบบนี้อะ Kotlin จะมีหน้าตาเป็นยังไง ระหว่าง Workshop พี่แกก็ปล่อยมุขแบบจัดเต็มมากสามารถเข้าไปโหลด repostitory มาลองทำได้เลย

โดย repository นี้จะมีอยู่ 2 barnch นะครับ (master คือส่วนที่มี //TODO เอาไวหัดทำและ complete จะเป็นส่วนเฉลยนั่นเอง) สามารถดูสไลด์ในหัวข้อนี้จากด้านล่างนี้ได้เลย 🔥

ช่วงพักเบรคกินขนมและพิซซ่า… 🍕🍕🍕

ไอติม ไอติม 🍨
ขนมเต็มโต๊ะเลย ฮ่าๆ
ต้องขอขอบคุณ Sponsor งาน Workshop Kotlin มา ณ ที่นี้ด้วยครับ

หัวข้อที่ 3 ความมหัศจรรย์ของ Standard Library ของเจ้า Kotlin (miracle-of-stdlib)

กอล์ฟ-ไมค์ นะครับพี่เขาหล่อกว่าเยอะ 🤙

ในส่วนของหัวข้อนี้ก็จะเป็นการอธิบายในส่วนของ Standard Library ที่ติดมากับตัวของ Kotlin ว่ามันใช้งานยังไงจากที่ต้องเขียน Logic เองเป็น 10–20 บรรทัด Kotlin มีให้ใช้งานเหลือเพียงแค่บรรทัดเดียวโคตรคูลเลยอะหัวข้อนี้ ยกตัวอย่างเช่น

  • ความหมายและการใช้งานพวก Apply, Also, With, Let, Run ของ Kotlin
  • ความหมายและการใช้งานของ Delegated Properties เช่น พวก lazy properties และ observable properties
  • ความแตกระหว่าง Mutable และ Immutable ใน Collections ของ Kotlin
  • ความหมายและการสร้าง Extension functions
  • ความสามารถของ Collections ใน Kotlin เช่น พวก Filter, Sort และ Find ซึ่งสามารถเรียกใช้เพียงบรรทัดเดียวไม่ต้องเวิ่นเว้อเหมือน Java อีกต่อไป
  • ฯลฯ

แต่จุดขายของหัวข้อนี้ไม่ได้อยู่ที่ความรู้ที่จะได้เพียงอย่างเดียว เพราะมีการทำ Quiz ด้วยโดยมีข้อแม้ว่าจะต้องเอาสิ่งที่ได้เรียนมาเข้ามาแก้ไขปัญหา โดยทางพี่ Speaker จะมีโปรเจ็คให้กับผู้ร่วมงานและในโปรเจ็คนั้นมีการเขียน unittest ของ functions ไว้แล้วสิ่งที่ต้องทำคือ ต้องเขียน functions ให้ test ผ่าน เข้โคตรคูล

และถ้าใครอยากจะเห็นว่ามันจะยากจะง่ายก็สามารถโหลด Repository จากด้านล่างไปลองทำกันได้เลย

เฉลยของ Quiz ที่ 1 และ Quiz ที่ 2

สามารถดูสไลด์ในหัวข้อนี้จากด้านล่างนี้ได้เลยเช่นกัน 👍

หัวข้อที่ 4 ดินแดนมหัศจรรย์ของ KotlinJS และ Native

คนนี้ต้องขอคาระวะเลยครับ โคตรแมพ

มาถึงหัวข้อสุดท้ายของงาน Workshop Kotlin กันแล้ว ซึ่งในหัวข้อนี้จะพูดถึงเรื่องของการนำเอาเจ้า Kotlin มาพัฒนาบน Platform อื่นๆ อาทิเช่นในฝั่งของ Bowser ที่ปัจจุบันนิยมใช้ JavaScript ก็หันมาใช้ Kotlin ที่แปลงร่างมาเป็น Kotlin JavaScript, การทำ IoT โดยใช้ Kotlin เขียนลงไปในบอร์ด Rasberry PI และสุดท้ายการเขียนแบบ Native ในงานจะยกตัวอย่างเป็นแอพฯบน IOS

ซึ่งจุดเด่นของหัวข้อนี้คงหนีไม่พ้นเรื่องของการสร้าง Single page app โดยใช้ Kotlin JavaScript กันให้เห็นแบบสดๆนั่นเอง ถ้าใครสนใจอยากจะลองเอามาดูโครงสร้างตัวอย่างโค้ดในหัวข้อนี้ก็สามารถเข้าไปโหลดได้จากด้านล่างเลย

แต่จุดพีคของหัวข้อนี้มันอยู่ที่การเขียนแอพฯบน IOS ด้วย Kotlin และ Build ลง Iphone ให้เห็นกันแบบจะๆไปเลยนี่สิ (หยอกล้อผู้ร่วมงานที่เป็น IOS Dev กันนิดหน่อย โคตรฮ่าเลยช่วงนี้)

สุดท้ายถ้าใครอยากจะเห็นว่าการนำเอาเจ้า Kotlin มาสร้าง Sigle page app มันทำได้ขนาดไหนล่ะก็สามารถเข้าไปชมได้จากลิงค์ด้านล่างนี้เลยครับ

หรือจะเข้าไปศึกษาดูโค้ดว่าเห้ย! ทำยังไง ก็เข้าไปดูได้ที่นี่

สามารถดูสไลด์ในหัวข้อนี้จากด้านล่างนี้ได้เลยครับผม ✌️

จบเนื้อหาภายในงานแล้วถ่ายรูปได้ … 📷

ในรูปพี่เขาให้ทำรูปตัว K ก็เลยได้ออกมาเป็นแบบนี้แหละ ฮ่าๆ

ช่วงขายของ (Tie-in)

สามารถเข้าไปศึกษาการใช้งานของเจ้า Kotlin จากแหล่งข้อมูลด้านล่างนี้เลยครับ (ฉบับภาษาไทย)

และถ้าใครอยากจะเข้ามาพูดคุยหรือแลกเปลี่ยนความคิดเห็นก็สามารถเข้ามาร่วมกันในกลุ่ม Thailand Kotlin Developer นี้เลยนะครับ

บรรยากาศงาน Kotlin ที่เชียงใหม่ก็มีนะ

สรุป

ในความคิดส่วนตัวคิดว่าภาพรวมของงานออกมาดีมาก ไม่ว่าจะเป็นในส่วนของการแบ่งหัวข้อเพื่อเป็นพื้นฐานในหัวข้อต่อไป เนื้อหาที่อัดแน่นมาด้วยคุณภาพ แต่ทว่าเวลาที่มีกับเนื้อหาที่พวกพี่ทีมงานครั้งนี้อยากจะให้กับผู้ร่วมงาน นั้นไม่ค่อยจะพอมากนัก คราวหน้าจัดแบบเข้าค่ายกินนอนด้วยกันสัก 3 วันเลยนะพี่ ฮ่าๆ แต่สิ่งที่เจ้าของบล็อคได้มาจากงานครั้งนี้ ที่มากกว่าความรู้คือ มิตรภาพ และมุมมองที่แตกต่างออกไปจากนักพัฒนาคนอื่นๆที่มาร่วมงาน เพราะอย่างว่าเนาะอยู่ต่างจังหวัดงานแบบนี้มันหาได้ยาก สุดท้ายนักพัฒนาแอพฯแอนดรอย์ในยุค 4.0 ทำความรู้จักกับเจ้า Kotlin ไว้ก็ไม่เสียหายนะ และสิ่งที่สำคัญเลยคือ เจ้าของบล็อคจำทางไป Pronto Marketing ได้ขึ้นใจเลยครับผม หากมีข้อผิดพลาดต้องขออภัยด้วยนะครับ ไว้เจอกันใหม่ในบทความถัดไปนะครับผม 👋

แหล่งข้อมูล

ต้องขอขอบคุณข้อมูล รูปภาพ และสไลด์จากกลุ่ม Thailand Kotlin Developer มา ณ ที่นี้ด้วยนะครับ

--

--