Slik hakkes en Dashboard Widget

Dashbordet i disse dager er foreldet. Vi legger en kalkulator her og en klebrig notat der en gang noen få uker, men dessverre har vi ikke sett mange gode widgets kommer ut nylig. I dag, for å rette opp den tomme plassen i vårt Dashboard-hjerte, la vi rive en widget og hack den inn i vår egen!

Tips: Hvis du vil laste ned widgetfilen fra denne opplæringen, kan du laste den ned her. Dette er den tilpassede Dashboard-widgeten som er opprettet ved slutten av denne opplæringen, med alle bildene og endringene forutsett. Dette betyr at du kan installere det direkte på Dashboard og spille med endringene med en gang.


Et Dashboard Dilemma

Når vi ser på Dashboard for den gjennomsnittlige Mac-brukeren, er det sannsynligvis tomt og aldri brukt, eller overveldende fullt av sportsnyheter og klistremerker. Noen ganger ser vi også festlige julelys! Sikkert, det må være mer til oversikten enn dette.


Dashbordet var aldri ment for dette! Vel, forhåpentligvis var det ikke.

Vi kunne gå videre med våre liv og fortsette å stirre på våre rotete skjermer, men det stemmer ikke overens med Mactuts + -stilen! Dashboards dør ut, så la oss gjenopplive scenen ved å tilpasse våre widgets mer enn noen gang før.

For å bekjempe et aspekt av denne Widget-depresjonen, vil vi redigere "Stickies" Widget og gjøre det til vår egen. Redigeringene er enkle: Endre bakgrunnen til klistrene, slik at vi kan ha spesifikke notatfarger (og etiketter) til spesifikke formål. For eksempel vil vi ha en klebrig notatype for personlige tanker, en for en todo-lister, og muligens en annen for tilfeldige notater. Vi legger også til en egendefinert "Slett alle" -knappen for å gjøre det raskere å slette notatene våre.

Dashboards dør ut, så la oss gjenopplive scenen ved å tilpasse våre widgets mer enn noen gang før.

Du trenger noen HTML-, CSS- og JavaScript-kunnskaper, men prosessen er absolutt ikke for avansert. La oss komme i gang!


Trinn 1: Få Widget Open

Alle widgets er plassert i mappen "/ Library / Widgets". Du kan gjøre en rask Comman + Shift + G for å få tilgang til det raskt. Fordi vi skal redigere Stickies Widget, finn widgetfilen Stickies.wdgt og lag en kopi til skrivebordet ditt. På denne måten kan vi redigere filene uten å måtte bekymre seg om tillatelser og lagringsbaserte problemer.

Høyreklikk på skrivebordet og velg Vis pakkeinnhold for å åpne widgeten som en mappe i stedet for å åpne den i Dashboard.


Dette åpner widgeten som en mappe, heller enn i Dashboard.

Nå som vi har Widget-filene åpne, la oss ta en titt på den generelle strukturen til en Widget.


Trinn 2: Se på filene

Dashboard-widgets er relativt enkle. De er små HTML-oppsett med JavaScript sprinklet inn for å gjøre dem interaktive. På grunn av dette er filene som er inkludert i hver widget rett frem og lett å endre, spesielt når vi bare vil endre enkle ting som bildene. Stickies Widget er et godt eksempel på denne enkelheten.


Pass på at du har åpnet widgeten med et høyreklikk -> Vis pakkeinnhold. Ikke åpne den og installer den på oversikten.

For å få forståelse for bruken av en Dashboard-widget, la oss se på hver enkelt fil og se hva den brukes til.

Info.plist


Strukturen til Info.plist-filen kan se kjent hvis du har sett på preferansefilene til Mac eller IOS-enheten før.

De Info.plist filen bestemmer informasjon om widgeten. Det er sentralt for Widget, da det inneholder Bundle Name ("Stickies" her), den nåværende versjonen, høyden og bredden på widgeten og mer. Men fordi vi bare redigerer widgets i denne opplæringen, kan vi ignorere denne filen.

Version.plist

Denne filen er vanligvis den samme som den siste. Den inneholder mer informasjon om widgeten. Den har versionsnummer, bygge nummer, etc. Det er ikke viktig for det vi gjør.

Stickies.html

Dette er det virkelige kjøttet av widgeten. Her har vi koden som utgjør det vi ser. Som nevnt før, er hver widget bare en HTML-side, så dette er lett å redigere. Hvis du åpner den, vil du finne det veldig kjent om du har jobbet med nettsteder før. (Som et notat endres "Stickies" i filnavnet basert på Widget, så denne filen har ikke alltid samme navn. Dette gjelder også de to neste filene.)

Stickies.css

Selvfølgelig, med HTML-en vil vi style innholdet, så her er CSS-filen som følger med den.

Stickies.js

Interaktiviteten til widgeten kommer fra JavaScript, og dette er hvor alt er holdt. Vi kommer til å redigere dette også senere!

Default.png & [email protected]

Når noen widget laster, vises disse bildene som plassholdere til alt er lastet. Det er splash skjermen av widgeten. (Hvis du lurer på hva "@ 2x" betyr på slutten, er det et større bilde for Retina Display på nyere skjermer.)

Icon.png & [email protected]

Når du legger til en widget i oversikten din, kan ikonene du ser og dra, være disse filene. Igjen er "@ 2x" for Retina Displays.

Bildermappe


På samme måte som alle nettsteder, blir bildene samlet på ett sted for enkel tilgang.

Stickies-widgeten bruker en "Bilder" -mappe for å holde alle bildene sine. Du vil merke seg inne er alle bakgrunner og ikoner som utgjør widgeten.


Trinn 3: Rediger bildene

Den første og enkleste måten vi kan gjøre før du går inn i koden, er å redigere bildefiler for å endre utseendet til widgeten. Når det gjelder Stickies-widgeten, og mange andre lager widgets, kan vi bare dra og slippe nye bilder i Widget-mappen for å gjøre endringer. Hvis jeg for eksempel ville endre Stickies-ikonet, kunne jeg opprette nye .png filer og erstatte de gamle ("icon.png" og "[email protected]").


Du kan behandle widgeten akkurat som et nettsted. Her har jeg redigert ikonet!

Jeg har også nå endret det gule bakgrunnsbildet i mappen "Bilder" ved å legge til et tema for "personlige tanker". Jeg endret fargene og la et ikon øverst til høyre for å angi formålet med notatet.


Bare ved å erstatte det første bildet med det andre, har vi redigert widgeten.

Nå, hvis vi installerer den nye Widget, ser vi umiddelbart redigeringene, og våre gule notater vil nå ha temaet "personlige tanker". La oss skifte et nytt notat, og denne gangen blir den til en todo-liste.


En annen liten endring kan gjøre en widget mye mer personlig og tiltalende.

Redigering av bildene er en fin måte å legge til stilig stil på widgets. Det er raskt og enkelt å gjøre, og hvis det er alt du ønsker å gjøre, kan du hoppe videre til trinn 5 for å installere den nylig endrede widgeten. Ellers, la oss fortsette å jobbe med den.


Trinn 4: Rediger koden

Nå er det på tide å legge til noen ekte funksjonalitet! Dette er hvor HTML / CSS / JavaScript-kunnskapen er nyttig, fordi hver widget er bygget med nettopp det. Vi vil ikke gå for langt inn i dybden for å redigere koden, men vi jobber med alle tre filene for å bli kjent med deg. Som jeg sa tidligere, jobber vi med å legge til et annet lite ikon nederst til venstre som fungerer som en "slette alle" -knappen.


Til den ydmyke webutvikleren føles dette hjemme.

HTML-filen

For å legge til den nye knappen må vi legge til en annen #eraseButton div rett før #infoButton div (linje 21). Akkurat nå er dette bare en tom div med et bilde inne, men vi skal stilte det for å gjøre det som en kort knapp snart. De img er et enkelt 12px med 12px "x" ikon som jeg har plassert i "Bilder" mappen.

 

CSS-filen

Nå for å gi slettknappen styling, la oss snu til Stickies.css fil og legg til noen grunnleggende plasserings- og størrelsesinformasjon før #infoButton velgere. La oss også gi den litt mer stil ved å øke opasiteten når den svinger over.

 #eraseButton opacity: 0.5; stilling: absolutt; toppen: 166px; venstre: 15px; bredde: 13 piksler; høyde: 13 piksler;  #eraseButton: hover opacity: 1; 

JS-filen

Hvis du ser på Stickies.js fil, vil du innse at det er veldig godt dokumentert og skrevet takket være Apple. Dette gjør det enkelt for oss å jobbe med det.

JavaScript-koden for å gjøre sletteknappen virket er en veldig enkel funksjon som bare setter innholdet i tekstboksen til ingenting. Legg til denne koden hvor som helst i Stickies.js, helst hvor den passer med andre funksjoner. Jeg legger den etter textToHTML funksjon.

 funksjon eraseAll () mydiv.innerHTML = ""; 

For å ringe til JavaScript-koden, la oss legge til en ved trykk hendelse til #eraseButton i Stickies.html fil.

 

Og knappen er ferdig! Det er et veldig enkelt eksempel, men det viser også utvidelsen av widgets som disse på grunn av deres enkelhet


Trinn 5: Installer den nye widgeten

Hvis du noen gang vil teste ut widgeten din når du gjør endringer, er det to alternativer: Åpne .html-filen i nettleseren din som et nettsted, eller installer widgeten og test den ut i Dashboard. Den første er raskere for utvikling, mens den andre gir en ekte Dashboard-opplevelse.


Vi har endret ikonet, bakgrunnene og lagt til en ny funksjon!

Installere en widget er også veldig enkelt. Alt du trenger er et dobbeltklikk på en widget og et "ja" til installeringsprompten. Pass på at du lagrer en kopi av den redigerte versjonen før du installerer den nye widgeten. Dette skyldes at når du installerer det, blir filen flyttet til "~ / Bibliotek / Widgets". Vær også oppmerksom på at når vi installerer den nye Stickies Widget, vil den overskrive sist som den har samme navn.


Akkurat som vi ønsket, fungerer den nye knappen og våre nye bakgrunner fungerer.

Redigering av widgeten virket skremmende i begynnelsen, men dens enkelhet tillot oss å gjøre endringer enkelt. Vi har ferdig med å redigere vår Stickies Widget, og forhåpentligvis ga Dashboard-verdenen en liten rommel. Hvis vi ønsket, kunne vi nå fortsette å skape flere bakgrunner og legge til flere funksjoner for å tilfredsstille våre behov.


Mer Hacking og Fiddling

Vi har egentlig bare fått ankel-dypt inn i tingene vi kan gjøre ved å endre Dashboard-widgets. Dette er egentlig bare en primer til Widget-hacking verden, og hva du kan gjøre vil være basert på din evne til å manipulere bilder og jobbe med koden. Du vet hvordan du gjør endringene nå, men det som kommer neste er å bestemme hvilke endringer du vil gjøre.

!