Tutorial Pembingkai: Cara Membuat Prototipe Interaktif yang Menakjubkan

Diterbitkan: 2022-03-11

Lihatlah contoh prototipe di bawah ini. Ini dilakukan di Framer. Setelah tutorial ini, Anda akan dapat mulai membuat prototipe animasi menakjubkan Anda sendiri dalam waktu singkat.

Contoh prototipe Framer
Wojciech Dobry (interaksi web), Patryk Adas (API kotak peta), Krijn Rijshouwer – Tim penyusun.

Framer keluar dengan versi terbarunya seminggu yang lalu, dan pasar prototyping tidak akan pernah sama. Alat prototyping Framer dulunya sulit untuk dikuasai tetapi berguna sebagai perangkat lunak prototyping yang paling akurat dan tidak terbatas. Sekarang, hal-hal telah berubah. Framer kini hadir dengan fitur Desain + Kode + Kolaborasi, artinya Anda dapat membuat prototipe Anda langsung di dalam Framer, mengembangkan prototipe yang berfungsi penuh tanpa perangkat lunak pihak ketiga dan tanpa keterampilan pengkodean apa pun.

Di sini, saya akan mengajari Anda cara menggunakan kode Framer sederhana tanpa pengetahuan pengkodean sebelumnya. Anda akan belajar bagaimana menggabungkan fitur terbaik dari mode desain dan kode di Framer untuk membuat prototipe animasi dan interaktif. Jadi mari masuk ke tutorial ini dan ambil beberapa cuplikan kode kecil untuk meningkatkan prototipe Anda.

Dasar-dasar Pembingkai

Mari kita mulai! Buka saja framer.com dan unduh versi percobaan. Mereka memberi Anda dua minggu demo yang berfungsi penuh, dan percayalah, ini adalah waktu yang cukup untuk belajar banyak tentang perangkat lunak prototyping ini.

Setelah instalasi, Anda mungkin ingin melihat beberapa contoh yang mereka berikan dan bermain dengannya sedikit. Setelah selesai, saatnya untuk mulai membuat prototipe.

(Dalam tutorial Framer ini, saya akan berfokus pada pembuatan prototipe langsung di Framer.js. Anda juga harus tahu ada cara lain untuk memulai pembuatan prototipe di Framer. Misalnya, Anda dapat bekerja langsung dengan file Sketch. Saya akan membahas alur kerja itu di artikel lain.)

Pembingkai Baru – Mode Desain

Dalam artikel ini, kami akan membuat tiga prototipe keren dalam hitungan menit dengan penggunaan kode minimal: interaksi dasar, komponen gulir, dan komponen halaman

3 interaksi berbeda yang dibuat di Framer - tutorial pembingkai

Versi terbaru dari Framer memiliki fitur baru yang hebat: mode desain. Ini memungkinkan Anda untuk bekerja dengan cara yang hampir sama seperti yang Anda lakukan di Sketch atau Figma. Anda dapat membuat lapisan vektor, mengimpor gambar, atau membuat dan memberi gaya pada lapisan teks. Semua ini menjadi sangat berguna ketika Anda ingin membuat prototipe dengan cepat tanpa aplikasi pihak ketiga.

Mari Membuat Desain Tipe Aplikasi

Di bagian pertama tutorial ini, kita akan menyiapkan taman bermain untuk prototipe Framer kita. Kami akan membuat desain tipe aplikasi, dengan tiga jenis lapisan yang berbeda: vektor, gambar, dan teks.

Mode desain di Framer

Langkah 1: Buat tombol dan latar belakang sederhana.

Untuk memulai desain Anda, pilih tab pertama—yaitu mode desain —dan tambahkan artboard, seperti di Sketch. Dalam tutorial ini, kita akan mengerjakan prototipe iPhone 7, jadi saya memilih preset ini sebagai ukuran artboard saya. Saya juga telah menambahkan isian latar belakang biru.

Selanjutnya, pilih rectangle tool dan buat bentuk berupa tombol bulat sederhana.

Menambahkan dan menata layer bentuk

Langkah 2: Tambahkan kartu dengan gambar.

Metode kedua untuk menambahkan lapisan adalah fitur drag and drop . Anda dapat memilih file gambar apa pun dari komputer Anda, memasukkannya ke dalam Framer, dan menatanya menggunakan bilah sisi kanan. Saya menggunakan ilustrasi sederhana dan menatanya sebagai kartu.

Seret dan lepas fitur untuk lapisan gambar

Langkah 3: Tambahkan judul aplikasi.

Framer juga memungkinkan Anda untuk menambahkan lapisan teks. Sekali lagi, menatanya pada dasarnya sama dengan perangkat lunak grafis apa pun. Anda dapat memilih font, ukuran, perataan, spasi huruf, dan lainnya.

Menambahkan dan menata layer teks

Langkah 4: Beri tahu Framer lapisan mana yang interaktif.

Kami memiliki satu langkah lagi sebelum memulai prototipe Framer kami. Kita hanya perlu memberi tahu Framer lapisan mana yang akan interaktif. Cukup klik titik di sebelah nama layer di dalam panel layer. Ada baiknya untuk memberi nama setiap lapisan dengan benar untuk digunakan lebih lanjut. Saya menamai kartu dan tombol lapisan saya.

Memberi nama lapisan dan mengaktifkan pemicu

Langkah 5 (Bonus): Tentukan warna global Anda.

Praktik yang baik adalah mendefinisikan beberapa variabel untuk keseluruhan prototipe. Anda dapat mengatur palet warna, tipografi, dan dimensi dasar yang akan Anda gunakan dari awal. Ini membantu menghemat waktu.

Saat Anda menyiapkan warna, beri nama saja di editor kode, dan berikan nilai HEX, RGB, atau RGBa setelah tanda “=” yang sesuai. Ingatlah untuk menyimpan semua variabel di bagian paling atas kode Anda.

 # variables ------------------------------- blue = "#005D99" green = "#3DBE8B" white = "#FFFFFF"

Langkah 6 (Bonus): Menambahkan posisi relatif.

Dengan Framer baru, sangat mudah untuk menjaga prototipe Anda tetap responsif. Anda dapat mengatur posisi relatif dari mode desain , seperti yang ditunjukkan di bawah ini:

Menerapkan posisi relatif untuk lapisan

Berikut adalah daftar singkat properti yang berguna untuk menyelaraskan dan menghitung posisi lapisan secara langsung dalam kode. Anda dapat melakukan matematika yang diperlukan untuk menghitung posisi lapisan. Ini menjadi penting ketika Anda menambahkan interaksi nanti dan Anda ingin membuat prototipe Anda tetap responsif.

 # This is how you can align layer position: x: Align.center(0) # align layer horizontaly x: Align.center(200) # align layer horizontaly with 200 offset x: Align.right(0) x: Align.left(0) y: Align.center(0) # align layer verticaly y: Align.top(0) y: Align.bottom(0) # You can use also some variables width: Screen.width # current device width height: Screen.height # current device height # As a reference you can also user layer names x: layerA.x # layerA horizontal position y: layerA.y # layerA vertical position width: layerA.width # layerA width height: layerA.height # layerA height # You can combine all of this into the simple math to calculate position or dimensions width: Screen.width / 2 - layerA.width

Sekarang Anda Sudah Siap—Ayo Mulai Proyek Kami

Kami telah membuat berbagai jenis lapisan Framer. Sekarang taman bermain interaksi kami siap digunakan.

Tutorial pembingkai: Prototipe yang tampak seperti aplikasi dengan interaksi dan animasi yang dibuat di Framer
Kami akan membuat prototipe aplikasi ini selangkah demi selangkah.

Akhirnya! Bagian yang membosankan telah berakhir. Sekarang saatnya untuk beberapa desain interaksi.

Unduh seluruh prototipe di sini.

1. Membuat Interaksi Umpan Balik Tombol

Untuk merancang interaksi apa pun, kita membutuhkan pemicu untuk mewujudkannya. Ini bisa berupa apa saja: ketukan layar, akhir animasi, akhir pemuatan gambar, atau akselerometer ponsel Anda.

Langkah 1: Membuat acara untuk interaksi.

Kami akan tetap sederhana. Mari buat umpan balik tombol saat Anda mengetuknya, menggunakan perintah berikut:

tutorial pembuat bingkai

 layerA.onTap (event, layer) ->

Framer baru saja menulis baris kode ini untuk Anda. Artinya, ketika Anda mengetuk lapisan tombol, sesuatu akan terjadi.

Langkah 2: Menambahkan animasi ke acara.

Mari kita mulai animasi setelah pemicu ini. Untuk melakukan ini, klik titik di sebelah layer tombol di panel layer, lalu pilih Add Animation . Saat Anda menambahkan animasi, Framer beralih ke mode pengeditan animasi. Anda dapat menskalakan, memindahkan, memutar, atau mengubah parameter lapisan apa pun:

Editor animasi di Framer
Editor animasi di Framer.

Framer menambahkan beberapa baris kode lagi. (Jangan khawatir—Anda masih dapat mengedit animasi dengan panel animasi.)

 button.onTap (event, layer) -> button.animate borderRadius: 27 borderWidth: 10 borderColor: "rgba(115,250,121,1)" options: time: 0.30 curve: Bezier.ease

Selamat! Anda baru saja membuat interaksi pertama Anda. Ini hanya berfungsi sekali sekarang, tetapi kami akan memperbaikinya. Alasan Anda dapat memicu animasi ini hanya sekali adalah karena tidak ada yang terjadi setelah animasi selesai. Kita harus mengatur ulang semua parameter setelah animasi pertama berakhir seperti sebelumnya.

Langkah 3: Mengatur ulang animasi.

Tambahkan acara lain, hampir seperti yang kita lakukan sebelumnya. Bedanya kita mencari event saat animasi berakhir:

Menambahkan acara di editor kode dalam tutorial pembingkai

Kali ini, kode yang ditambahkan oleh Framer akan terlihat seperti ini:

 button.onAnimationEnd (event, layer) ->

Jadi, ketika animasi pada layer tombol selesai, kita dapat menambahkan animasi berikutnya yang akan mengatur ulang parameter layer tombol :

 button.onAnimationEnd (event, layer) -> button.animate borderWidth: 100 borderColor: "rgba(255,255,255,1)" borderRadius: 100 options: time: 0.3 curve: Bezier.ease

Itu dia! Kami sekarang memiliki umpan balik yang berfungsi setelah ketukan pada tombol kami.

Animasi umpan balik tombol
Prototipe umpan balik tombol di Framer.

2. Membuat Status Berbeda untuk Interaksi Lapisan Kartu

Ok, sekarang Anda tahu cara mendesain animasi dan memicunya. Lebih sering, Anda harus mendesain status lapisan yang berbeda. Anda dapat mendesain beberapa status dari lapisan yang sama dengan hanya mengubah beberapa parameter, seperti posisi, ukuran, atau opasitas.

Langkah 1: Menambahkan dan membuat status untuk lapisan kartu.

Cara menambahkan status pada kartu hampir sama dengan menambahkan animasi. Anda harus mengklik titik di sebelah lapisan kartu dan kemudian klik Add State . Sekarang Anda telah beralih ke mode edit status. Desain sesuka Anda:

Menambahkan status dalam editor kode

Harap perhatikan indentasi kode. Itu harus dimulai dari baris pertama.

Saya telah merancang dua status berbeda untuk lapisan kartu saya:

 card.states.a = width: 248 height: 287 x: 63 y: 190 borderWidth: 10 borderColor: "rgba(115,250,121,1)" card.states.b = x: 139 y: 529 width: 98 height: 98 borderRadius: 49 borderWidth: 1 borderColor: "rgba(255,255,255,1)"

Langkah 2: Menambahkan acara.

Hanya ada satu langkah lagi untuk membuatnya bekerja. Kita harus membuat acara untuk mengubah status ini.

 button.onTap -> card.stateCycle()

Apa yang dilakukan adalah mengubah semua status lapisan satu per satu, setiap kali Anda melakukan tindakan. Jadi, dalam kasus kami, setiap kali kami mengetuk lapisan tombol , kami mengubah status kartu . Jika Anda ingin membuat lebih banyak status dan memicunya dengan benar, cuplikan di bawah ini akan bekerja lebih baik untuk Anda:

 button.onTap -> card.stateSwitch("b")

Cuplikan ini berguna saat Anda ingin memicu status lapisan tertentu.

Penyesuaian terakhir yang saya lakukan pada prototipe saya adalah perubahan kecepatan dan kurva animasi antar status:

 card.animationOptions = curve: Spring time: 0.8 
Prototipe akhir dengan animasi
Menyatakan interaksi pada prototipe iPhone.

Ada lebih banyak lagi yang dapat Anda lakukan dengan acara , tetapi pada titik ini, Anda akan dapat membuat hampir semua interaksi dasar. Ini adalah salah satu dokumentasi tertulis terbaik yang pernah saya lihat.

Mempercepat Pekerjaan Anda di Framer: Components

Waktunya telah tiba untuk menambahkan komponen untuk mempercepat pekerjaan Anda. Untuk mendapatkan hasil maksimal dari tutorial ini mulai saat ini, unduh prototipe ini.

1. Komponen Pertama: Menggulir

Menggulir interaksi di dalam mockup iPhone 7

Saya telah memodifikasi prototipe kami sedikit. Sekarang kami memiliki daftar di dalamnya, tetapi tingginya di atas resolusi layar. Kita harus membuat scrolling untuk dapat melihat seluruh daftar di prototipe.

Langkah 1: Membuat layer dan menyiapkan komponen.

Membuat prototipe gulir dalam mode desain

Mari kita mulai dengan membuat layer dengan ketinggian lebih besar dari layar kita. Tandai lapisan ini sebagai interaktif dan beri nama daftar . Kemudian lompat ke mode kode. Kami tidak akan menggunakan bilah sisi kiri yang berguna kali ini. Mari kita atur seluruh layar kita agar dapat digulir:

 scroll = new ScrollComponent width: Screen.width height: Screen.height

Kode ini membuat area tak terlihat dengan lebar dan tinggi perangkat saat ini.

Langkah 2: Beri tahu Framer lapisan apa yang ingin Anda gulir.

Belum ada yang terjadi. Kita harus memberi tahu Framer lapisan mana yang harus dapat digulir. Untuk melakukan ini, kami menambahkan lapisan daftar kami ke komponen gulir:

 list.parent = scroll.content

Langkah 3: Mengunci gulir vertikal.

Kami diizinkan untuk menggulir sekarang, tetapi itu terjadi di semua arah. Kita harus mengunci scroll pada sumbu vertikal:

 scroll.scrollHorizontal = false 
tutorial pembingkai Prototipe akhir dengan fitur gulir
Komponen bergulir.

Wow! Anda membuat gulir di dalam aplikasi Anda hanya dengan lima baris kode sederhana.

2. Komponen Halaman: Menggesek Layar ke Layar

tutorial pembingkai Prototipe gesek layar di dalam mockup iPhone7
Di komponen halaman, Framer memungkinkan Anda menggesek antar layar dan secara otomatis menguncinya ke posisinya.

Interaksi yang sangat populer untuk beralih antar layar adalah menggesek. Idenya di sini sangat mirip dengan komponen scrolling. Anda dapat mengunduh prototipe yang berfungsi di sini.

Langkah 1: Menyiapkan komponen.

Pertama, kita harus membuat "kotak" di editor kode tempat keajaiban akan terjadi:

 page = new PageComponent width: 315 height: Screen.height x: Align.center scrollVertical: false clip: false # the content outside the box won't be clipped

Pada titik ini, Anda harus terbiasa dengan semua kode di sini. Ini hanya pengaturan sederhana dari komponen dan areanya. Sekarang kita harus membuat beberapa lapisan untuk digesek.

Langkah 2: Membuat lapisan

Kami akan menggunakan desain prototipe pertama kami dan memodifikasinya sedikit. Alih-alih satu gambar kartu, kali ini saya mengimpor dua gambar.

Pada awalnya, kita harus membuat artboard dua kali lebih lebar. Di panel properti artboard, temukan lebar dan kalikan dengan dua (atau cukup tambahkan *2 ). Tempatkan kartu di samping satu sama lain, aktifkan dengan titik biru, dan beri nama dengan benar: card1 dan card2 .

Mempersiapkan prototipe pembuat bingkai dalam mode desain

Langkah 3: Menambahkan lapisan ke komponen halaman.

Di akhir kode kita di editor kode, kita harus menambahkan:

 card1.parent = page.content card2.parent = page.content

Itu berarti kita menambahkan lapisan ini ke komponen.

Prototipe akhir dengan komponen halaman
Komponen halaman—memungkinkan Anda untuk menggesek layar, baik secara horizontal maupun vertikal.

Komponen halaman sekarang siap digunakan!

kata akhir

Itu saja, Teman-teman! Saya harap Anda menemukan tutorial Framer ini berguna untuk memulai perjalanan Anda dengan alat prototyping paling kuat di pasar. Juga, Anda harus mempertimbangkan untuk bergabung dengan grup Framer di Facebook. Ada komunitas besar di sekitar, dan mereka sangat membantu saat Anda memulai.

Jika Anda ingin masuk lebih dalam ke dalam Framer, coba baca dokumentasi Framer.

• • •

Bacaan lebih lanjut di Blog Desain Toptal:

  • eCommerce UX – Tinjauan Praktik Terbaik (dengan Infografis)
  • Pentingnya Desain yang Berpusat pada Manusia dalam Desain Produk
  • Portofolio Desainer UX Terbaik – Studi Kasus dan Contoh yang Menginspirasi
  • Prinsip Heuristik untuk Antarmuka Seluler
  • Desain Antisipatif: Cara Membuat Pengalaman Pengguna yang Ajaib