Opprette prototyper for iOS og Android Med Framer Grunnleggende

Introduksjon

I disse dager trenger du ikke bildedigeringsprogramvare som Adobe Photoshop eller Gimp for å opprette brukergrensesnittmockups for mobilappene dine. En app som samsvarer med Googles materialdesignspråk består vanligvis av bare enkle geometriske former, solide farger, ikoner og tekst. En brukergrensesnitt prototype for en slik app kan opprettes enkelt ved hjelp av bare kode.

I denne todelte serien skal du lære grunnleggende om Framer, en åpen kildekode Javascript ramme som lar deg programmatisk lage interaktive og realistiske prototyper med vakre animasjoner for iOS og Android apps.

Forutsetninger

For å følge denne opplæringen må du:

  • den siste bygningen av Framer-rammen
  • Google Chrome eller en annen webkitbasert nettleser
  • Python 2,7 eller høyere
  • en tekstredigerer
  • en grunnleggende forståelse av HTML, CSS og Javascript

1. Første oppsett

Trinn 1: Opprett en HTML-side

Fordi en framer prototype er noe annet enn en vanlig nettside skrevet i HTML, CSS og Javascript, la oss starte med å lage en tom HTML-side. Jeg skal ringe denne siden index.html.

"html

"

For å kunne benytte Framer API på denne siden, bør du legge til en manus tag som peker til framer.js filen du lastet ned.

html

Trinn 2: Opprett en HTTP-server

Siden Framer bruker protokollrelaterte nettadresser for å laste inn ulike ressurser, kan du ikke bare dobbeltklikke filen du opprettet for å åpne den i en nettleser. Å gjøre det vil føre til nettverksfeil. I stedet bør du få tilgang til det via en HTTP-server.

For å raskt lage en HTTP-server som kan betjene websiden din, kan du bruke Python SimpleHTTPServer modul.

Åpne en terminal, naviger til katalogen som inneholder nettsiden du opprettet, og utfør følgende kommando.

bash python -m SimpleHTTPServer 8000

Dette vil starte en server som kjører på port 8000 som standard. Du kan nå åpne Google Chrome og vise websiden din ved å besøke http: // localhost: 8000 /.

Trinn 3: Tegn en enhet

For å gjøre prototypen din realistisk på en stasjonær nettleser, bør du vise alle elementene i rammen til en mobilenhet. Framer lar deg tegne en rekke populære mobilenheter, for eksempel iPhones, Nexus-telefoner og -tabletter, iPads, Apple-klokker og mer. For denne opplæringen bruker jeg en rosa iPhone 5c.

For å tegne en enhet, bør du først opprette en forekomst av DeviceComponent klasse og ring det setupContext metode. Du kan da endre det Enhetstype til enheten du velger. Legg til en annen manus tag til HTML-siden du opprettet tidligere, og legg til følgende kode for den:

"javascript var device = ny Framer.DeviceComponent ();

device.setupContext (); device.deviceType = "iphone-5c-rosa"; "

Når du oppdaterer websiden din, bør du se følgende i nettleservinduet:

Hvis du vil, kan du også gjengi en hånd som holder enheten ved å legge til -hånd på slutten av Enhetstype streng. Hvis enheten ser for stor eller for liten ut, kan du bruke setDeviceScale metode for å endre størrelsen.

"javascript // Vis en hånd med enheten device.deviceType =" iphone-5c-pink-hand ";

// Endre størrelsen device.setDeviceScale (0.3); "

Dette fullfører det opprinnelige oppsettet. Resultatet skal se slik ut:

2. Tegnebokser, Tekst og Bilder

Nesten hvert element i din Framer-prototype vil være en forekomst av Lag klasse. EN Lag er veldig lik en HTML div element og kan brukes til å tegne rektangler, bilder og tekst.

Å opprette en Lag du må ringe sin konstruktør og sende den et JSON objekt som definerer ulike egenskaper til Lag. Mens du lager en Lag, du angir vanligvis sine dimensjoner (bredde og høyde) og posisjon (x og y). Du kan også bruke centerX og centery metoder for å sentrere det horisontalt og vertikalt. Her er et eksempel på hvordan du lager en Lag.

"javascript // Tegn en hvit firkant

var whiteSquare = nytt lag (backgroundColor: "#FFFFFF", bredde: 400, høyde: 400, y: 20);

// Senter horisontalt whiteSquare.centerX (); "

For å vise et bilde må du opprette en Lag hvem sin bilde Egenskapen peker til bildefilen du vil vise.

"javascript // Tegn et bilde

var pic = nytt lag (bilde: "painting.jpg", bredde: 400, høyde: 400, y: 440);

pic.centerX ();"

For å vise tekst (eller HTML), kan du bruke html eiendom. Du kan også legge til CSS styling til en Lag bruker sin stil eiendom.

"javascript // Skriv tekst

var text = nytt lag (width: Screen.width, height: 100, y: 860, html: "Dette er en prototype", stil: fontSize: "50px", textAlign: "center", farge: "# f1f2f3 ", PaddingTop:" 18px ");"

Med de tre Lag objekter vi opprettet i dette trinnet, ville prototypen se slik ut:

3. Legge til hendelser

Du kan knytte hendelseshåndterere til en Lag bruker metode. De Metoden er mye som Javascript er addEventListener metode. Det tar navnet på en hendelse som sin første parameter og en funksjon som den andre parameteren.

Slik legger du til en klikk handler til tekst lag vi opprettet i forrige trinn:

javascript text.on ("click", function () text.html = "Jeg ble klikket";);

Du vil se flere hendelseshåndterere senere i denne opplæringen.

4. Legge til animasjon

Framer skiller seg ut fra konkurransen takket være sine avanserte animasjonseffekter. Med Framer kan du animere nesten alle egenskapene til din Lag objekter som bruker animere metode. De animere Metoden tar som input et JSON-objekt som spesifiserer egenskapene som skal animeres.

JSON-objektet kan også inneholde forskjellige konfigurasjonsdetaljer av animasjonen, for eksempel varighet og oppførsel.

For eksempel, la meg vise deg hvordan du lager en animasjon som slår whiteSquare inn i en sirkel ved å endre dens borderRadius.

"javascript // Animer borderRadius

whiteSquare.animate (egenskaper: borderRadius: whiteSquare.width / 2,

tid: 2, // varighet er to sekunder kurve: "easy-in-out" // bruk lettelse); "

Her er et annet eksempel som viser hvordan du kan animere skyggen av whiteSquare når den klikkes.

"javascript // Animate Shadow

whiteSquare.on ("klikk", funksjon ()

// Sett skyggefarge først whiteSquare.shadowColor = "# 555555"; whiteSquare.animate ("properties": shadowBlur: 40, shadowSpread: 10,); );"

Merk at bare de egenskapene hvis verdier er tall kan animeres. Som shadowColor er ikke et tall, det bør settes før du ringer animere.

5. Bruke stater

Hvis du bruker Framer, er det sannsynlig at du prøver å lage en svært interaktiv prototype med mange animasjoner. Ringer på animere Metode flere ganger på a Lag kan bli kjedelig. I stedet kan du knytte en liste over stater med en Lag og bare bytte mellom statene når det er nødvendig.

Hver Lag har en stater eiendom som er en forekomst av LayerStates klasse. For å legge til nye stater i en Lag, du ringer til Legg til metode på stater eiendom. I følgende kodestykke legger vi til to nye stater til pic gjenstand.

"javascript // Legg til to stater

pic.states.add ("myState1": borderRadius: 100,

"myState2": borderRadius: 200); "

Å legge til en stat resulterer ikke i umiddelbar visuell endring. Men når a Lag bytter fra en stat til en annen, vil du kunne se animasjonen. For å endre tilstanden til a Lag, du ringer til bytte om metode på stater eiendom av Lag gjenstand. Følgende kodestykke viser deg hvordan du endrer tilstanden til pic når den klikkes.

"javascript // Endre tilstand når du klikker

pic.on ("klikk", funksjon () // Bytt til myState2 pic.states.switch ("myState2");); "

Å sykle gjennom tilstandene til a Lag, du kan ringe til neste metode av sin stater gjenstand.

javascript pic.states.next ();

6. Endre bakgrunn

Hvis du vil legge til en bakgrunnsfarge eller et bilde i prototypen din, oppretter du en BackgroundLayer gjenstand. EN BackgroundLayer er en Lag hvis dimensjoner er lik dimensjonene på enhetens skjerm. Slik legger du til et grått BackgroundLayer:

javascript var bg = ny BackgroundLayer (backgroundColor: "#BDBDBD");

Fordi Framer-prototypen er bare en vanlig HTML-side, kan du også bruke CSS til å stile den. Hvis du for eksempel ikke er fornøyd med den hvite fargen som omgir enheten, kan du endre den ved å bruke en ny stil til nettsiden kropp stikkord.

"html

"

Med disse endringene vil prototypen se slik ut når animasjonene er ferdige:

7. Håndtering av trækoperasjoner

Å lage en Lag Draggable, alt du trenger å gjøre er å sette sin draggable.enabled eiendom til ekte.

"javascript // Tillat å dra

pic.draggable.enabled = true; "

Hvis en Lag er draggbar, kan du legge til hendelselyttere til det som svarer på ulike slepende relaterte hendelser, for eksempel dragend og dragmove. For eksempel, her er en dragend hendelseshåndterer som returnerer pic til sin opprinnelige posisjon:

"javascript // Handle dragend

pic.on ("dragend", funksjon () pic.animate ("properties": x: Screen.width / 2 - pic.width / 2, // Plasser ved Center y: 440 // Original Y );); "

Konklusjon

I denne opplæringen lærte du grunnleggende om å lage interaktive prototyper for mobilapper ved hjelp av Framer. Da dine Framer-prototyper er statiske nettsider, kan du laste dem opp til hvilken som helst HTTP-server for å dele dem med dine venner og klienter..

Jeg vil også fortelle deg at hvis du er kompetent med Adobe Photoshop, trenger du ikke å opprette brukergrensesnittelementene til prototyper programmatisk. Du kan designe layoutet i Photoshop og konvertere laggruppene i PSD til Framer Lag objekter. Du har også mulighet til å kjøpe og bruke Framer Studio, en IDE bygget spesielt for å jobbe med Framer-prosjekter.

For å lære mer om Framer-rammen, kan du se Framers dokumentasjon. I den andre delen av denne serien vil jeg dykke dypere inn i navigering, rulling og animasjon.