13 poin oleh xguru 2024-05-13 | 2 komentar | Bagikan ke WhatsApp
  • Saat mencari aplikasi untuk ikut serta dalam "tantangan 100 push-up sehari" dari UK Cancer Centre, penulis memutuskan untuk membuat sesuatu yang seru dengan menghitung jumlah push-up sendiri
  • Menjelajahi framework Core Motion di iOS
    • Saat mencari cara memanfaatkan data sensor, penulis memutuskan menggunakan CMHeadphoneMotionManager untuk memanfaatkan data gerakan AirPods
    • Core Motion menyediakan data dari akselerometer, giroskop, sensor geomagnetik, dan lainnya
    • Berguna untuk pengukuran gerakan dan orientasi yang akurat serta andal
    • Memerlukan izin akses data untuk melindungi privasi pengguna
  • Memikirkan cara menerapkan AI
    • Sudah banyak aplikasi yang menggunakan framework seperti ARKit
    • Sebagai gantinya, penulis menilai AI bisa membantu mewujudkan ide ini
    • Dengan memanfaatkan GPT yang dilatih tentang Core Motion, penulis mengajukan pertanyaan dalam bahasa alami dan memperoleh solusi
  • Merancang arsitektur aplikasi
    • Motion Manager: melakukan streaming data sensor dan menangani pembaruan sensor perangkat
    • Pushups Detector: menganalisis data yang di-streaming untuk mendeteksi dan menghitung push-up berdasarkan ambang batas yang telah ditentukan
    • SwiftUI View: menyediakan UI responsif yang diperbarui secara real-time saat pengguna melakukan push-up
  • Implementasi Motion Manager
    • Mengakses nilai yang diperbarui dengan pola delegate
    • Menggunakan CMHeadphoneMotionManager untuk mengambil data motion perangkat
    • Memulai dan menghentikan pembaruan sensor dengan startUpdates() dan stopUpdates()
    • Memperbarui nilai pitch dan accelerationY lalu memberi tahu delegate
  • Implementasi Pushups Detector
    • Memperkenalkan konsep "sesi" untuk memulai dan menghentikan analisis aliran data
    • Menafsirkan data mentah untuk menentukan postur pengguna dan apakah sebuah push-up terjadi
    • Menggunakan ambang batas untuk mendeteksi gerakan turun dan naik pada push-up lalu menambah hitungan
    • Mengimplementasikan MotionManagerDelegate untuk menangani perubahan nilai akselerasi dan pitch
  • Membangun tampilan sederhana dengan SwiftUI
    • Terdiri dari tombol mulai/akhiri sesi dan angka besar untuk menampilkan jumlah push-up
    • Juga menambahkan teks yang menunjukkan apakah postur pengguna sudah benar
  • Analisis dan visualisasi data
    • Menggunakan Swift Charts untuk memvisualisasikan data sensor mentah dan mengidentifikasi pola
    • Menemukan pola gerakan turun (-1.0) dan naik (+0.5) pada push-up dari akselerasi sumbu Y
    • Menyesuaikan ambang batas melalui pengujian nyata untuk meningkatkan akurasi (+0.4, -0.7)
  • Daya tarik pelacakan real-time
    • Saat memakai AirPods dan menekan tombol mulai, jumlah push-up diperbarui secara otomatis
    • Berfungsi tanpa interaksi tambahan dari pengguna
  • Hal yang dipelajari dari proyek ini
    • Menegaskan kembali pentingnya validasi dini dan perbaikan iteratif
    • Merasakan keseruan dan kepuasan dalam membuat sesuatu yang bermakna
    • Masih ada hal yang bisa ditingkatkan seperti perbaikan UI dan penghitungan push-up lintas beberapa hari
    • Menambahkan umpan balik audio melalui AirPods untuk meningkatkan pengalaman pengguna selain antarmuka visual
  • Kesimpulan
    • Dengan menggabungkan Core Motion, SwiftUI, dan AI, penulis mengembangkan aplikasi dalam 24 jam yang menambahkan dimensi baru pada pelacakan kebugaran
    • Penting untuk menantang diri sendiri dalam memikirkan bagaimana teknologi baru bisa diterapkan pada masalah sehari-hari

2 komentar

 
ing03201 2024-05-13

Sekali lagi jadi terasa betapa hebatnya Galaxy Watch yang bisa menghitung jumlah repetisi tiga latihan utama.

 
jooyh1021 2024-05-13

Beberapa tahun lalu saya pernah membuat aplikasi tantangan push-up bernama Thirty yang memanfaatkan sensor kedekatan iPhone, ternyata ada juga cara melakukannya dengan AirPods.. Sepertinya akurasi sensor kedekatan agak menurun setelah penambahan Dynamic Island :(