Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stay Productive & Creative with Online Collabor...

Avatar for Eka Eka
May 15, 2020

Stay Productive & Creative with Online Collaboration Tools

Whether you are learning, looking for inspiration, or building a project, collaborating with other developers provides valuable experience. The first part of this talk discusses how to use four major collaborative programming tools. In the second half of the talk, we do a collaborative live coding session on CodeSandbox, implementing quick performance and accessibiliy fixes that significantly improve our demo web page.

Originally presented at Women Techmakers and GDG Jogjakarta International Women’s Day 2020. https://www.youtube.com/watch?v=PCZlH6T-rJQ

Avatar for Eka

Eka

May 15, 2020

More Decks by Eka

Other Decks in Technology

Transcript

  1. Eka @ekafyi - IWD 2020 Women Techmakers Jogjakarta Stay Productive

    & Creative with Online Collaboration Tools
  2. Hi, I’m Eka Working from home before it was cool

    (frontend web dev @ AtmaConnect) github.com/ekafyi dev.to/@ekafyi [email protected]
  3. Online Collaboration Untuk apa? Work, learn, side projects, products. Di

    mana? Di lokasi fisik yang sama atau berbeda. Mengapa? Lebih efisien, melewati batasan geografis, menghadapi pandemi.
  4. Collaborative Coding Tools GitHub CodePen Glitch CodeSandbox Free tier Yes

    Basic functionalities Search and browse projects View source code of public projects Like and fork/clone/remix projects Explore github.com/explore codepen.io/popular/pens glitch.com/@glitch codesandbox.io/explore Platform type Version control + social hub IDE IDE IDE Live project URL (view, share, embed) ❌ GitHub Pages (static) ✔ ✔ ✔ Collaboration Issues Pull Requests ❌ (Pro only) Invite others to edit Invite to edit Chat Classroom mode
  5. 1. Github Setelah bekerja di branch kita sendiri, buat Pull

    Request. Bisa request review dari user lain dan berdiskusi.
  6. 2. Glitch Request to join untuk ikut bekerja di project

    user lain. Icon/avatar semua collaborator ditampilkan di kiri atas.
  7. 3. CodeSandbox Tab Live → copy link invite untuk mengajak

    orang lain bekerja sama di project kita.
  8. 3. CodeSandbox Ada fitur chat antar collaborator. Ada dua mode

    yaitu standar (semua langsung bisa mengedit) dan Classroom Mode (admin memilih user yang bisa mengedit).
  9. bit.ly/eka-iwd-2020 Today’s mission: Collaborate to improve this website’s performance and

    accessibility 4 basic improvements in < 4 minutes Let’s code together!
  10. Source: https://web.dev/vitals Core Web Vitals Standar ukuran dasar untuk memastikan

    halaman web kita memberi pengalaman yang baik untuk pengguna. Tiga aspek: loading, interactivity, dan visual stability.
  11. Image Area 1 / 4 Ukuran image terlalu besar. Image

    tidak dilengkapi beberapa atribut. File besar = boros data, loading lambat. Membuat layout bergeser. Akses screen reader terganggu. Masalahnya?
  12. Image - before & after <img src="large.jpg"> <img src="small.jpg" srcset="small.jpg

    500w, medium.jpg 1000w, large.jpg 1500w" alt="" width="300" height="100" >
  13. Responsive image with srcset Memuat file yang paling mendekati ukuran

    layar. Alt text attribute Digunakan oleh screen reader, menjelaskan isi gambar (boleh berisi ""). Width and height attributes Memastikan ukuran image tidak banyak berubah sebelum & sesudah loading. Image improvement Area 1 / 4
  14. Typography Area 2 / 4 Harus menunggu loading file web

    font. Ukuran teks tidak bisa mengikuti setting browser. Teks “hilang” sampai font selesai loading. Pengguna tidak bisa mengatur ukuran teks dari browser. Masalahnya?
  15. Typography - before & after body { font-family: 'Roboto'; font-size:

    16px; line-height: 24px; } body { font-family: 'Roboto', Arial, sans-serif; font-display: swap; font-size: 1rem; line-height: 1.5; }
  16. Properti CSS font-display swap = Gunakan fallback font selama font

    utama masih loading. Jika sudah siap, tukar dengan font utama. rem (unit relatif) untuk font-size dan numeric line-height Ukuran teks menyesuaikan setting browser (tidak selalu 16px) dan line-height menyesuaikan parent element. Typography improvement Area 2 / 4
  17. Color - before & after body { background: #fff; color:

    #777; } body { background: #fff; color: #757575; }
  18. Color improvement Area 3 / 4 Web Content Accessibility Guidelines

    2.0 Level AA Minimal 4.5:1 untuk teks standar, 3:1 untuk heading. Cara memeriksa kontras: - Browser DevTools (Elements → Styles → color picker) - Online tools eg. accessible-colors.com
  19. Rendering isi halaman terhambat. Note: Yang menghalangi render adalah <script>

    dan <link>. Di demo ini, kita fokus pada <script> dulu. Render-Blocking File Area 4 / 4 Harus menunggu loading file JS. Masalahnya?
  20. Render-Blocking File - before & after <html> <head> <title>Halamanku</title> <script

    src="script.js"></script> </head> <body> ... </body> </html> <html> <head> <title>Halamanku</title> <script src="script.js" defer></script> </head> <body> ... </body> </html>
  21. Render-Blocking File improvement Area 4 / 4 File JS &

    CSS external menghalangi (blocking) render isi halaman. Atribut defer File script di-download di background, dan browser bisa lanjut merender isi halaman. Script dijalankan setelah selesai download dan setelah DOM siap.
  22. Conclusion Ada banyak tools untuk kolaborasi online, termasuk di bidang

    pemrograman. Pilih tool yang sesuai dengan kebutuhan kolaborasi dan project-mu. DISCUSS: How do you plan to use online collaboration tools?
  23. Extra: Audience Question Ada pertanyaan dan komentar audience terkait gambar

    responsif, kenapa tidak menggunakan @media query CSS atau ukuran berdasarkan viewport (vw vh). Karena keterbatasan waktu, pertanyaan tersebut tidak dapat dibahas mendalam. Selengkapnya dapat disimak di artikel ini: “Perjalanan menuju gambar responsif: CSS width, media query, sampai img srcset”