Categories
UX

แอบฟังเสียงผู้ใช้งาน

ผมนั่งฟังแฟนของผมประชุมกับที่ทำงาน เกี่ยวกับซอฟต์แวร์ที่จ้างภายนอกพัฒนา

หลายประเด็นเกี่ยวกับ UX น่าสนใจและเป็นบทเรียนที่ดี

  1. ความไม่สะดวกเพียงแค่เล็กน้อย แต่ส่งผลกับผู้ใช้มากถ้าต้องใช้ซอฟต์แวร์นั้นเยอะๆทั้งวันถ้านักพัฒนาคิดมากขึ้นและลงแรงอีกนิดจะช่วยผู้ใช้งานได้เยอะเลย เราต้องลงแรงให้มากที่สุดในการออกแบบ UX เท่าที่ resource (คน+เวลา) มี
  2. feedback การใช้จริงแบบนี้มีผลมากกับนักพัฒนา ถ้านักพัฒนาได้ฟัง ซอฟต์แวร์เวอร์ชันต่อไปจะดีขึ้นอย่างมาก

ผมคิดว่าข้อ 2 นี่สำคัญมาก ทำอย่างไรเราจะได้ฟังความคิดเห็นแท้จริงจากผู้ใช้(พูดในสิ่งที่คิดทั้งหมด) และไม่ผ่านการกรองของคนอื่นที่ไม่ใช่ผู้ใช้งานจริง ๆ

Categories
Artificial Intelligence

คอร์ส Machine Learning ฟรี 100%

Categories
การพัฒนาซอฟท์แวร์

เปิด UML class diagram ใน IntelliJ

กด Ctrl+Alt+U เพื่อเปิด UML class diagram

Categories
Productivity

Tips ~ ทำงานง่ายขึ้น

  1. เก็บโทรศัพท์มือถือไว้ในลิ้นชัก โดยยึดหลัก 3 ข้อนี้
    • ไม่ให้มองเห็น โดยการเก็บไว้ในลิ้นชัก
    • ไม่ให้ได้ยิน โดยเปิด Do not disturb
    • ไม่ให้เข้าถึง เช่น เก็บไว้ไกล ๆ หรือล็อคลิ้นชัก
  2. เลือกรายการใน Todo list มา 3-5 รายการที่สำคัญที่สุด เขียนใส่กระดาษโน้ต เรียงลำดับความสำคัญ เริ่มทำรายการแรก
  3. ใช้ Software มาช่วย Block ไม่ให้เราเข้าเว็บ เช่น Facebook ในเวลาทำงาน เช่น Block Site ใน Google Chrome และควรใช้บนมือถือด้วย
  4. ระหว่างทำงานถ้ามีอะไรมาดึงความสนใจหรือเราวอกแวกไปคิดเรื่องอะไร ให้จดใส่กระดาษไว้ งานเสร็จจะกลับมาดูก็ได้
  5. ออกไปเดินซักนิดก่อนเริ่มทำงานยาก
Categories
OS

เพิ่มพื้นที่บน macOS

สำหรับตัวเอง ใคร search มาเจอก็เอาไปเลือกใช้เองนะครับ ไฟล์อะไรหายไม่รับผิดชอบนะ

  1. clear cache Homebrew
    • brew cleanup -s
    • rm -rf $(brew –cache)
  2. clear cache Gradle
    • rm -rf $HOME/.gradle/caches/
    • ในแต่ละโปรเจค ./gradlew cleanBuildCache
  3. เลือกลบ cache ใน ~/Library/Caches ที่เคลียร์ได้ เช่น
    • GoLand20xx.x
    • IntelliJIdea20xx.x
    • JetBrains
    • Yarn
    • Google/Chrome
    • Google/AndroidStudioX.X
    • PhpStormXXXX.X
    • PyCharmXXXX.X
    • CocoaPods
    • com.apple.dt.Xcode <– Xcode.app Cache
  4. ~/Library/Developer/Xcode/DerivedData/Runner-xxxx
  5. ~/Library/Developer/Xcode/Archives/xxxxxx
  6. ~/Library/Containers/com.tinyspeck.slackmacgap/Data/Library/Application Support/Slack/Cache
  7. ~/Library/Application Support/Code/Cache
Categories
ข้อคิดดีๆ

แค่เรียนรู้ตลอดเวลายังไม่พอ

ปีนี้มีทั้งช่วงที่ทำแต่งานจนไม่เวลาเรียนรู้สิ่งใหม่ ช่วงที่ว่างและเรียนคอร์สออนไลน์มากมาย และช่วงนี้ที่ทำงานเยอะแต่หาเวลาเรียนรู้สิ่งใหม่ ๆ ทุกวัน

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

แต่การทำงานเยอะโดยไม่ได้เรียนรู้สิ่งใหม่เลยนั้นก็แย่พอกัน ไม่รู้สึกว่าทำงานได้ดีขึ้นเลย ใช้แค่สิ่งที่เคยรู้มา บ้างก็คิดเอาเอง ทั้ง ๆ มีเครื่องมือหรือวิธีที่ดีกว่าแต่เราไม่รู้ เราก็ไม่พัฒนา

ต้องเรียนรู้อยู่เสมอ และต้องนำความรู้ไปใช้จริงด้วย ไม่อย่างนั้นไม่มีประโยชน์เท่าไหร่

Categories
การตลาด

[สรุป] ทำ Marketing สำหรับ Mobile app ให้รุ่ง

ในยุคนี้มี app มากมายไปหมด จะทำ marketing strategy ยังไงให้ดึงดูดใจ และ Hook ให้กลุ่มเป้าหมาย download แอพของเรา

เนื้อหา

ตอนนี้ผู้คนอ่าน ดู และฟังสิ่งต่างๆ ด้วยเวลาที่สั้นลง เพราะข้อมูลในแต่ละวันมีมากขึ้น เราจะทำยังไงให้ดึงดูด หรือสร้างความสนใจให้นานพอที่จะดาวน์โหลดหรือจ่ายเงินซื้อสินค้า

  • Screenshots ทำให้เค้าชอบและอยากใช้ อาจจะแสดงหน้าจอที่แสดงความเจ๋ง คุณค่าสูงสุดที่แอพให้กับเค้า หรือ feature ที่สำคัญที่สุด
  • Videos แสดงให้เห็นว่าจะใช้ในสถานะการจริงได้ยังไง ความสำคัญอยู่ที่เรื่องที่เล่าเพื่อให้เค้าอิน
  • Infographic ใช้รูปคุณภาพสูง เพื่ออธิบายคุณค่าสูงสุดที่โดดเด่น แตกต่าง ที่โน้มน้าวเค้าได้

ที่สำคัญอย่าลอกคนอื่น เพราะไม่มีอะไรดีที่สุดกับทุกงาน จงลงทุนกับการสร้างสรรค์ เพื่อให้ลูกค้าจำแบรนด์ของเราได้

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

การสื่อสารกับผู้รับสาร

เก็บเกี่ยวทุก feedback และข้อมูลจากลูกค้า เป็นสิ่งสำคัญมากสำหรับ MVP (minimum viable product) ทั้งปรับ Product และ Workflow

การปรับกลยุทย์หลังจากได้ข้อมูลมาเป็นเรื่องปกติ แต่ต้องมี metrics ที่โปร่งใสและมาประสิทธิภาพ จากนั้นแปลผลให้ดี เพื่อนำมาสู่ไอเดียใหม่ ๆ

หัวใจของ marketing คือการเข้าใจลูกค้า สื่อสารให้มาก เพราะเราไม่สามารถรู้ทุกอย่างจากลูกค้าไม่กี่คน และสำคัญมากที่ต้องดูพฤติกรรมแฝงด้วย ดูให้กว้างและลึกที่สุด

Social Media เป็นสื่อสำคัญระหว่างเรากับลูกค้า ต้องใส่ใจ ให้เวลา ให้ลูกค้ารู้สึกถึงปฏิสัมพันธ์ของทั้ง 2 ทาง ไม่ใช่ไม่ตอบสนอง ให้เค้ารับรู้ถึงการสื่อสารกับ “คน” ไม่อย่างนั้นเค้าจะหนีไป   –ก็เหมือนกับชีวิตจริง

จะดีมากถ้าลูกค้าให้ feedback ผ่านแอพได้ใน click เดียว

ชื่อและ Logo

นี่อาจเป็นสิ่งที่เราให้ความสนใจมาก แต่อย่าให้มันหลอกเรา จนลืมสนใจปฏิสัมพันธ์ระหว่างลูกค้า

ชื่อที่เป็นการเล่นคำกำลังได้รับความนิยม(อาจเป็นเพราะชื่อทั่วไปมีคนใช้หมดแล้ว) แต่ระวังว่าลูกค้าต้องอ่านออกทุกคน ออกเสียงได้ง่าย จำได้ง่าย   –ชื่อที่ดีคิดยากแต่คุ้ม

ไม่ต้องคาดหวังถึงขั้นลูกค้าจะวาด logo ของเราได้ แค่เห็นแล้วจำได้ ไม่ต้องยัดอะไรลงไปเยอะแยะ ยังมีงานส่วนอื่นให้ยัดไอเดียอีกเยอะ

ทำให้รู้สึกตื่นเต้น

ทุกวันนี้แอพเยอะทำให้ผู้คนรู้สึกชินกับการสื่อสารแบบต่าง ๆ แล้ว ต้องทำให้เค้าสนใจให้ได้ การทำให้เค้าพูดถึง และเป็น word of mouth บน Social Media ควรเป็นเป้าหมาย

ส่งมอบคุณค่า และทำให้ชัดเจน

ผู้คนคาดหวังว่า app ต่าง ๆ จะแก้ปัญหาของเค้าได้ เราต้องสื่อสารว่า app เราดีที่สุดที่เค้าตามหา เราควรสื่อสาร product positioning ออกไปได้ในประโยคเดียว ต้องทำให้เค้าสนใจทันทีที่เห็น เพราะเรามีโอกาสไม่มากนัก

จำเป็นต้องระบุกลุ่มเป้าหมาย ใครต้องการ app ของเรา? ทำไมเค้าถึงต้องการ? จะอธิบายพวกเค้าอย่างไร? และที่สำคัญ เราแตกต่างจากคนอื่นอย่างไร? ทำให้ถูกต้องในเวลาที่เรายังมีโอกาสทำได้

ต้องให้ข้อมูลในครั้งเดียว พอเค้าโดน hook ค่อยให้รายละเอียด

ทำ SEO ให้ถูกพบได้ง่าย หา keywords, sentences ที่เค้าใช้ และทำ #hashtags บน Social Media ด้วย

Categories
Uncategorized

เราอยู่ในยุคที่ใคร ๆ ก็ประสบความสำเร็จอย่างสูง และมากกว่าคนอื่นได้ง่าย ๆ

ยุคนี้ ใคร ๆ ก็เข้าถึงข้อมูลได้
ยุคนี้ ใคร ๆ ก็เรียนสิ่งที่อยากเรียนได้
ยุคนี้ ใคร ๆ ก็เข้าถึงแหล่งเงินทุนได้
ยุคนี้ ใครอยากเป็นอะไร สามารถเป็นได้หมด
ยุคนี้ ไม่มีคำว่าไม่รู้ ทำไม่ได้

แต่ทำไมหลาย ๆ คนไม่เข้าใกล้คำว่าประสบความสำเร็จเลย

เราคาดหวังจะประสบความสำเร็จในเรื่องใดในชีวิต เราย่อมรู้ดี

แต่ เรารู้หรือไม่ว่าเราต้องทำอะไรบ้างเพื่อเป้าหมายนั้น
เราลงทุนไปกับสิ่งนั้นบ้างหรือเปล่า

  • เราอยากดูดี อยากลดความอ้วน แต่ไม่มีเวลาออกกำลังกาย ไม่มีเวลาทำอาหาร
  • เราอยากก้าวหน้าในหน้าที่การงาน แต่ไม่มีเวลาเรียนรู้เพิ่มเติม
  • เราอยากอยู่ในสังคมที่ดี แต่ถูกรายล้อมไปด้วยคนเห็นแก่ตัว ขี้อิจฉา ขี้นินทา
  • อยากทำธุรกิจ แต่ไม่มีเงิน ไม่มีคอนเน็คชั่น ไม่มีคนที่จะช่วยทำ

ดูเหมือนชีวิตไม่ได้ง่ายอย่างที่ว่ามาในตอนต้น
และไม่ใช่ทุกคนจะโชคดี มีเวลาทำสิ่งที่ต้องการ ได้เจอสิ่งดีๆ คนดีๆ เสมอไป

ชีวิตมันยาก หรือเราเองที่ไม่ทำให้มันง่ายขึ้น ?

เรายังนั่งส่อง facebook, instagram ชาวบ้านวันนึงหลายชั่วโมงหรือเปล่า ?
เรายังดูละครหลังข่าวทุกวัน คุณยังเม้าท์มอยเรื่องชาวบ้านอยู่หรือเปล่า ?
เรายังดื่มน้ำหวาน น้ำชง น้ำอัดลม แอลกอฮอล์ อยู่หรือเปล่า ?

ดูเหมือนว่าเรามีแต่สิ่งที่ต้องการในชีวิต
แต่ถ้าให้ตอบตัวเองอย่างซื่อสัตย์

เรา “เลือก” ทำในสิ่งที่ดีที่สุดแล้วหรือยัง?
เรา “ลงมือทำ” ในสิ่งที่ดีที่สุดแล้วหรือยัง?

ถ้าเราไม่นั่งส่อง facebook, instagram ชาวบ้าน
ไม่ดูละครหลังข่าวทุกวัน ไม่ใช้เวลาเม้าท์มอยเรื่องชาวบ้าน

ลอง ลงเรียนออนไลน์  ไปสัมมนา  อ่านหนังสือ ฟังพอดแคสต์ หาความรู้ใหม่ๆ ทุกวัน
ลอง เอาเวลาไปออกกำลังกายเล็กๆ น้อยๆ
ลอง ใช้เวลาสร้างความสัมพันธ์ที่มีคุณภาพ กับคนที่มีคุณภาพ

การ “เลือก” และ “ลงมือทำ” ในสิ่งที่ดี สิ่งที่มีคุณภาพนั้นยาก

แต่การ “หยุด” พฤติกรรมหรือนิสัยที่ไม่ดี นั้นยากไม่แพ้กัน
การหยุด ดื่มน้ำหวาน น้ำชง น้ำอัดลม แอลกอฮอล์ จะช่วยให้การลดความอ้วนง่ายขึ้นมาก
แต่การ “หยุด” เรื่องแค่นี้กลับยากสำหรับเราหลายคน ใช่หรือไม่?

เราอาจมีแต้มต่อน้อยกว่าคนอื่น
อาจมีเงินน้อยกว่าคนอื่น
อาจมีภาระรับผิดชอบมากมาย
อาจมีเวลาไม่มากนัก

แต่ถ้าเราเพียงแค่มีเป้าหมาย มีแผนการชัดเจน แล้ว
“เลือก” ในสิ่งที่ดีที่สุด
“ลงมือทำ” ในสิ่งที่ดีที่สุด
“หยุด” พฤติกรรมหรือนิสัยที่ไม่ดี

เราอาจสร้างแต้มต่อในชีวิตได้ด้วยตัวเอง
และการประสบความสำเร็จอย่างที่เราหวัง อาจไม่ยากอย่างที่คิด

และถ้าคนอีกมากยังมีแต่ความอยาก แต่ไม่มีเป้าหมาย ไม่มีแผนการ
ยังใช้ชีวิตอย่างประมาท ไม่ตั้งใจในการใช้ชีวิต
ถึงเค้าจะเกิดมามีแต้มต่อในชีวิตมากแค่ไหน เราก็อาจจะแซงเค้าได้ในซักวัน

หยุด พูดแต่สิ่งที่อยากได้
หยุด อิจฉาชีวิตคนอื่น
เริ่ม คิดและลงมือทำ

Categories
การพัฒนาซอฟท์แวร์

รวมสไลด์จากงาน I/O Extended Bangkok (9 ก.ค. 2017)

เมื่อวันเสาร์ที่ผ่านมา (9 ก.ค. 2017) มีการจัดงาน I/O Extended Bangkok ที่ตลาดหลักทรัพย์แห่งประเทศไทย มีหัวข้อที่น่าสนใจหลายหัวข้อเลยครับ ผมรวบรวมสไลด์เท่าที่หาได้ สำหรับเพื่อน ๆ ที่ไม่ได้ไปร่วมงานหรือเพื่อน ๆ ที่ไปร่วมงานแล้วอยากได้ Reference จากในสไลด์ของ speaker แต่ละท่านเพื่อนำไปศึกษาเพิ่มเติม

What’s new in Firebase and Cloud Platform


Speaker : Jirawat Karanwittayakarn (GDE Firebase)

…..

What’s new in Android O

GitHub -> https://github.com/akexorcist/Android-O-Feature

Speaker : Somkiat Wongkitwattana (GDE Android)

…..

Unlock the power of web Components with Polymer

Speaker : Tanakrit Saisillapee

…..

Introduction to Kotlin

Speaker : Travis Subanaphong

…..

Building apps for the Google Assistant

Github -> https://github.com/thangman22/googleiobkk17-action-on-google

Speaker : Warat Wongmaneekit (GDE Web Technologies)

…..

Speeding up your Android Gradle builds

Speaker : Jirawat Karanwittayakarn (GDE Firebase)

…..

Introduction to Architecture Components

GitHub -> https://github.com/akexorcist/Android-ArchComponents

Speaker : Somkiat Wongkitwattana (GDE Android)

…..

Modern web The next era of web experience

Speaker : Warat Wongmaneekit (GDE Web Technologies)

Categories
iOS

[iOS] การทำให้ UITableView ไม่แสดง Separator สำหรับ Cell ที่ว่าง

ผมคิดว่าคนที่พัฒนาแอพ iOS คงจะเคยเจอปัญหาว่า UITableView จะแสดงเส้นคั่น (separator) สำหรับ cell ที่ว่างกันมาบ้าง ตามรูปนี้ครับ

บล็อกนี้ผมจะเสนอวิธีง่ายๆ ที่จะแก้ปัญหานี้ครับ

Swift

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.tableFooterView = UIView()
}

Objective-C

- (void)viewDidLoad 
{
    [super viewDidLoad];

    // This will remove extra separators from tableview
    self.tableView.tableFooterView = [UIView new];
}

หรืออาจจะทำแบบนี้ก็ได้ครับ

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

อ้างอิง stackoverflow