Prototypes maken voor iOS en Android met Framer Basics

Invoering

Tegenwoordig hebt u geen beeldbewerkingssoftware zoals Adobe Photoshop of Gimp nodig om mock-ups voor gebruikersinterfaces te maken voor uw mobiele apps. Een app die voldoet aan de Material Design-taal van Google bestaat meestal alleen uit eenvoudige geometrische vormen, effen kleuren, pictogrammen en tekst. Een prototype van een gebruikersinterface voor een dergelijke app kan eenvoudig worden gemaakt met alleen code.

In deze tweedelige serie leer je de basis van Framer, een open source Javascript-raamwerk waarmee je programmatisch interactieve en realistische prototypen kunt maken met prachtige animaties voor iOS- en Android-apps.

voorwaarden

Om deze tutorial te volgen, heb je nodig:

  • de nieuwste build van het Framer-framework
  • Google Chrome of een andere op WebKit-gebaseerde browser
  • Python 2.7 of hoger
  • een teksteditor
  • een basiskennis van HTML, CSS en Javascript

1. Eerste installatie

Stap 1: Maak een HTML-pagina

Omdat een Framer-prototype niets anders is dan een gewone webpagina geschreven in HTML, CSS en Javascript, laten we beginnen met het maken van een lege HTML-pagina. Ik ga deze pagina bellen index.html.

"html

"

Om gebruik te maken van de API van Framer op deze pagina, moet u een script tag die naar de verwijst framer.js bestand dat je hebt gedownload.

html

Stap 2: Maak een HTTP-server

Omdat Framer gebruik maakt van protocol-relatieve URL's om verschillende bronnen te laden, kunt u niet eenvoudig dubbelklikken op het bestand dat u hebt gemaakt om het in een browser te openen. Dit zal leiden tot netwerkfouten. In plaats daarvan zou u toegang moeten hebben via een HTTP-server.

Als u snel een HTTP-server wilt maken die uw webpagina kan weergeven, kunt u Python's gebruiken SimpleHTTPServer module.

Open een terminal, ga naar de map met de webpagina die u hebt gemaakt en voer de volgende opdracht uit.

bash python -m SimpleHTTPServer 8000

Hiermee wordt een server gestart die op poort wordt uitgevoerd 8000 standaard. U kunt nu Google Chrome openen en uw webpagina bekijken door naar http: // localhost: 8000 / te gaan.

Stap 3: teken een apparaat

Als u uw prototype op een desktopbrowser realistisch wilt laten aanvoelen, moet u alle elementen binnen het frame van een mobiel apparaat weergeven. Met Framer kun je een verscheidenheid aan populaire mobiele apparaten maken, zoals iPhones, Nexus-telefoons en -tablets, iPads, Apple Watches en meer. Voor deze zelfstudie zal ik een roze iPhone 5c gebruiken.

Als u een apparaat wilt tekenen, moet u eerst een exemplaar van het apparaat maken DeviceComponent klasse en bel zijn setupContext methode. U kunt dan zijn veranderen soort apparaat naar het apparaat van uw keuze. Nog een toevoegen script tag naar de HTML-pagina die je eerder hebt gemaakt en voeg de volgende code eraan toe:

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

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

Wanneer u uw webpagina vernieuwt, ziet u het volgende in uw browservenster:

Als je wilt, kun je ook een hand maken die het apparaat vasthoudt door toe te voegen -hand- aan het einde van de soort apparaat draad. Als het apparaat er te groot of te klein uitziet, kunt u de setDeviceScale methode om de grootte te veranderen.

"javascript // Geef een hand weer met het apparaat device.deviceType =" iphone-5c-pink-hand ";

// Wijzig de grootte device.setDeviceScale (0.3); "

Hiermee is de eerste installatie voltooid. Het resultaat zou er als volgt uit moeten zien:

2. Tekenvakken, tekst en afbeeldingen

Bijna elk element in uw Framer-prototype is een instantie van de Laag klasse. EEN Laag lijkt erg op een HTML div element en kan worden gebruikt om rechthoeken, afbeeldingen en tekst te tekenen.

Om een ​​te maken Laag je moet de constructor aanroepen en een JSON-object doorgeven dat verschillende eigenschappen van het object definieert Laag. Tijdens het maken van een Laag, u geeft meestal de afmetingen op (breedte en hoogte) en positie (X en Y). U kunt ook de centerX en Centery methoden om het horizontaal en verticaal te centreren. Hier is een voorbeeld van hoe je een kunt maken Laag.

"javascript // Teken een wit vierkant

var whiteSquare = nieuwe laag (backgroundColor: "#FFFFFF", width: 400, height: 400, y: 20);

// Centreer horizontaal witSquare.centerX (); "

Om een ​​afbeelding weer te geven, moet u een Laag wiens beeld eigenschap verwijst naar het afbeeldingsbestand dat u wilt weergeven.

"javascript // Teken een afbeelding

var pic = new Layer (image: "painting.jpg", width: 400, height: 400, y: 440);

pic.centerX ();"

Om tekst (of HTML) weer te geven, kunt u de html eigendom. U kunt ook CSS-styling toevoegen aan een Laag het gebruiken van zijn stijl eigendom.

"javascript // Tekst schrijven

var text = new Layer (width: Screen.width, height: 100, y: 860, html: "This is a prototype", style: fontSize: "50px", textAlign: "center", color: "# f1f2f3 ", PaddingTop:" 18px ");"

Met de drie Laag objecten die we in deze stap hebben gemaakt, zou het prototype er als volgt uitzien:

3. Evenementen toevoegen

U kunt gebeurtenishandlers koppelen aan een Laag de ... gebruiken op methode. De op methode lijkt veel op Javascript's addEventListener methode. Het neemt de naam aan van een gebeurtenis als zijn eerste parameter en een functie als zijn tweede parameter.

Zo voeg je een toe Klik handler voor de tekst laag die we in de vorige stap hebben gemaakt:

javascript text.on ("klik", functie () text.html = "Er werd op geklikt";);

Je zult meer eventhandlers later in deze tutorial zien.

4. Animatie toevoegen

Framer onderscheidt zich van zijn concurrentie dankzij de geavanceerde animatie-effecten. Met Framer kun je bijna elke eigenschap van je animeren Laag objecten met behulp van de bezielen methode. De bezielen methode neemt als invoer een JSON-object op dat de eigenschappen aangeeft die moeten worden geanimeerd.

Het JSON-object kan ook verschillende configuratiegegevens van de animatie bevatten, zoals de duur en het gedrag.

Laat me je bijvoorbeeld laten zien hoe je een animatie maakt die verandert whiteSquare in een cirkel door het te veranderen borderRadius.

"javascript // Animeer grensRadius

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

tijd: 2, // duur is twee seconden curve: "gemak in gebruik" // versoepeling toepassen); "

Hier is nog een voorbeeld dat laat zien hoe je de schaduw van kunt animeren whiteSquare wanneer erop wordt geklikt.

"javascript // Animate Shadow

whiteSquare.on ("klik", functie ()

// Stel de schaduwkleur eerst in whiteSquare.shadowColor = "# 555555"; whiteSquare.animate ("properties": shadowBlur: 40, shadowSpread: 10,); );"

Merk op dat alleen die eigenschappen waarvan de waarden getallen zijn, geanimeerd kunnen zijn. Zoals schaduwkleur is geen nummer, het moet worden ingesteld voordat u belt bezielen.

5. Staten gebruiken

Als u Framer gebruikt, probeert u waarschijnlijk een zeer interactief prototype te maken met veel animaties. Oproep aan de bezielen methode meerdere keren op een Laag kan vervelend worden. In plaats daarvan kunt u een lijst met toestanden koppelen aan een Laag en schakel gewoon tussen de toestanden wanneer dat nodig is.

elk Laag heeft een staten eigenschap die een instantie is van de LayerStates klasse. Om nieuwe toestanden toe te voegen aan een Laag, jij noemt het toevoegen methode op de staten eigendom. In het volgende codefragment voegen we twee nieuwe statussen toe aan de pic voorwerp.

"javascript // Twee toestanden toevoegen

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

"myState2": borderRadius: 200); "

Het toevoegen van een staat resulteert niet in een onmiddellijke visuele verandering. Echter, wanneer een Laag schakelt van de ene staat naar de andere, je zult de animatie kunnen zien. Om de status van een te wijzigen Laag, jij noemt het schakelaar methode op de staten eigendom van de Laag voorwerp. In het volgende codefragment ziet u hoe u de status van kunt wijzigen pic wanneer erop wordt geklikt.

"javascript // Status wijzigen wanneer erop wordt geklikt

pic.on ("klik", functie () // Schakel over naar myState2 pic.states.switch ("myState2");); "

Door de toestanden van a Laag, je kunt de volgende methode van zijn staten voorwerp.

javascript pic.states.next ();

6. Achtergronden veranderen

Als u een achtergrondkleur of afbeelding aan uw prototype wilt toevoegen, maakt u een achtergrondlaag voorwerp. EEN achtergrondlaag is een Laag waarvan de afmetingen gelijk zijn aan de afmetingen van het scherm van het apparaat. Zo voeg je een grijs toe achtergrondlaag:

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

Omdat het Framer-prototype slechts een gewone HTML-pagina is, kunt u CSS ook gebruiken om het te stylen. Als u bijvoorbeeld niet tevreden bent met de witte kleur rondom het apparaat, kunt u dit wijzigen door een nieuwe stijl toe te passen op de webpagina's. lichaam label.

"html

"

Met deze wijzigingen ziet het prototype er als volgt uit wanneer de animaties zijn voltooid:

7. Gebruik van drag-operaties

Om een ​​te maken Laag sleepbaar, alles wat je hoeft te doen is zijn draggable.enabled eigendom aan waar.

"javascript // Slepen toestaan

pic.draggable.enabled = true; "

Als een Laag is versleepbaar, u kunt gebeurtenislisteners toevoegen die reageren op verschillende gebeurtenissen met betrekking tot slepen, zoals dragend en dragmove. Dit is bijvoorbeeld een dragend gebeurtenishandler die terugkeert pic naar de oorspronkelijke positie:

"javascript // Gebruik dragend

pic.on ("dragend", function () pic.animate ("properties": x: Screen.width / 2 - pic.width / 2, // Place at Center y: 440 // Original Y );); "

Conclusie

In deze zelfstudie hebt u de basisbeginselen geleerd voor het maken van interactieve prototypen voor mobiele apps met Framer. Omdat uw Framer-prototypen statische webpagina's zijn, kunt u deze naar elke HTTP-server uploaden om ze met uw vrienden en klanten te delen.

Ik zou u ook willen vertellen dat als u bekwaam bent met Adobe Photoshop, u de elementen van de gebruikersinterface van uw prototypen niet programmatisch hoeft te maken. U kunt de lay-out in Photoshop ontwerpen en de laaggroepen in uw PSD in Framer's omzetten Laag voorwerpen. U hebt ook de mogelijkheid om Framer Studio aan te schaffen en te gebruiken, een IDE die speciaal is gebouwd voor het werken met Framer-projecten.

Voor meer informatie over het Framer-framework kunt u de documentatie van Framer raadplegen. In het tweede deel van deze serie ga ik dieper in op navigatie, scrollen en animatie.