Overlay'de, tasarımcıların sembollerini prod-hazır React / Vue.js bileşenlerine aktarmalarına yardımcı olmak için 2 yıl önce bir Sketch Plugin oluşturmaya başladık . Bu makaleyi, insanların Sketch eklentileri oluşturmasına yardımcı olmak ve bu konudaki teknik uzmanlığımızı paylaşmak için yazıyorum.
İlk olarak, Sketch eklentileri, Sketch işlevlerini genişletmek için çok iyi araçlardır. Sketch, topluluk tarafından oluşturulmuş bin eklentiye sahiptir . Örneğin, Overlay'de Sketch eklentimiz, tasarımcıların proje kılavuzlarıyla (renk, tipografi) bileşenlerin tutarlılığını kontrol etmelerine, Sketch'ten veri almalarına (sembol verileri, varlıklar, metin stili vb.) Ve tasarım varsayılanlarını tespit etmelerine olanak tanır.
Bu eğitim, React ve Typescript ile sıfırdan basit ama eksiksiz bir Sketch eklentisi oluşturmayı amaçlamaktadır. Size Sketch Eklentileriyle neler başarılabileceğine dair bir genel bakış sunmak istiyorum: web hissi arayüzleri oluşturun, bir web görünümünden Sketch yerel işlevlerini tetikleyin, Sketch yerel etkinliklerinden web görünümü uygulama işlevlerini tetikleyin.
İşleri zorlaştırmak için bir linter eklentisi oluşturacağız: PixelPerfect! PixelPerfect kullanıcıları bir Çizim Sembolü seçebilir ve katmanlarında kusurlu pikseller olup olmadığını kontrol edebilir.
Eklenti kusurlu piksel tespit ederse, kullanıcı tüm kusurları eklenti aracılığıyla tek bir tıklamayla düzeltebilir.
Eğitici, art arda yayınlanacak üç bölüme ayrılacaktır:
Eklenti mimarisini tasarlamaya başlayalım, Sketch eklentileri oluşturmak için iki yaklaşım vardır:
Yerli yaklaşım, tüm uygulama kodu, kullanıcının bilgisayarında saklanır. Bu, web görünümleri ( Zeplin , Craft ) olmadan oluşturulan tüm eklentiler ve uygulama dosyalarının yerel olarak barındırıldığı ( bu eğiticiye bakın ) ve Safari tarafından görüntülendiği (Sketch ile açılır) bir web görünümüyle oluşturulan eklentiler için geçerlidir .
Web yaklaşım sadece birkaç kod parçaları kullanıcının bilgisayarında saklanır. Bu durumda, web görünümünün işlenmesinden ve Sketch / Plugin iletişiminden sorumlu kodu sakladık. Uygulamanın geri kalanı (arayüz ve mantık) klasik bir web istemci tarafı uygulaması olarak bir sunucuda depolanır.
Açıkçası, ikinci yaklaşım daha karmaşık görünüyor, öyleyse neden bunu seçelim?
At Yerleşimi , web'i yaklaşımı nedeniyle seçti:
Ön koşullar :
mkdir pixel-perfect
cd pixel-perfect && npx skpm create pixel-perfect --template=skpm/with-webview && mv pixel-perfect pixel-perfect-native
cd pixel-perfect-native && npm run watch
npx create-react-app pixel-perfect-web --template typescript
cd pixel-perfect-web && npm run start
Tamam şimdi React uygulamasını Sketch eklentisine bağlayalım, bunu yapmak için my-command.js'yi düzenleyin
Şimdi eklentiyi açın / kapatın, web yaklaşımının Merhaba dünyasını görmelisiniz 🎉
Şimdi, yeni oluşturduğumuz geliştirme ortamına bir göz atalım. İlk olarak,
pixel-perfect-native/srcklasörde yerel bölüm var .
npm run buildKomutu çalıştırdığımızda SKPM , Sketch eklentisini bu konumda oluşturmak için bir Webpack sunucusu başlatır
pixel-perfect-native/pixel-perfect-sketch/sketchplugin. SKPM watcher iyi çalışıyor ancak her değişiklik için yeni yerleşik eklentiyi manuel olarak açmayı talep ediyor ki bu da acı verici.
pixel-perfectBu komutla proje köküne bir Makefile eklemenizi tavsiye ederim .
Bu Makefile'ı tek bir komutla
make buildoluşturabilir ve yeni eklentiyi açabilirsiniz.
Web bölümü
pixel-perfect-web/srcklasörde bulunur.
npm run startKomutu çalıştırdığımızda , React betiği bir Web paketi sunucusu başlatır ve web uygulaması dosyalarını oluşturur. Web bölümündeki her değişiklik, tarayıcıda ve Sketch eklentisinde yeniden yüklenecek ve bu, eklentiye devam etmek için çok faydalı olacak!
Yerel kısımda hata ayıklamak oldukça zor olabilir. Verileri yazdırmak için SketchDevTools'u kurmanızı ve kullanmanızı öneririm . Web bölümü için en sevdiğiniz tarayıcı geliştirme araçlarını veya Safari geliştirme araçlarını doğrudan eklenti web görünümünün içinde kullanabilirsiniz. Hata ayıklama hakkında daha fazla bilgi edinmek için bu Sketch eğitimini izleyin .
Tıklamak, kullanıcılar ve geliştiriciler için acı vericidir. Kullanıcıdan eklenti komutuna her tıklamasını istemek yerine eklenti arayüzünü değiştirmek için bir kısayol ekleyeceğiz, peki
^+shift+P? Bunu yapmak için
manifest.jsonyerel dosyayı kısayol satırı ile güncelleyelim
"commands": [ { "name": "my-command", "identifier": "pixel-perfect.my-command-identifier", "script": "./my-command.js", "shortcut": "ctrl shift p", "handlers": { "run": "onRun", "actions": { "Shutdown": "onShutdown" } } } ],
Şimdi ana ekran eklentisini tasarlayacağız, eklentinin bazı kusurlar bulup bulmadığını gösterecek. Hadi değiştirelim
App.tsx.
O zaman değiştirmemiz gerekiyor
App.css
Şimdi yeni güzel arayüzümüzü görebiliriz 🖼
Şimdi bileşen durumunu işlemek için hasImperfection durumunu ekleyelim . Temiz düğmesini veya başarı mesajını koşullu olarak işlemek için üçlü bir ifade kullanırız.
Bitirdiniz, Pixel Perfect hazır!
Bu GitHub deposunda bulunan kod kaynağı: https://github.com/Overlay-tech/pixel-perfect-tutorial
Umarım sizi React'in çok az çabayla Sketch Eklentisi oluşturma yeteneklerine ikna etmişimdir. Bir şeyleri özetlemek için:
Overlay mühendislik ekibinin sistemlerimizi nasıl tasarladığını, inşa ettiğini ve çalıştırdığını açıklamak için bir dizi teknik makale oluşturuyoruz ve her ay teknoloji içeriği yayınlamaya devam edeceğiz, teknik sorunlarla ilgileniyorsanız Overlay blogunu takip edin .
Aşağıda listelenen önerilerle başlarsanız, freelance çalışmak müthiş bir gelir kaynağı olabilir. Acemi olarak bir haftadan daha kısa sürede freelance iş bulmak için yararlandığım bazı tavsiyeler.
Bugün en önemli React Hook'larından biri hakkında konuşacağız useRef() React Hooks : useRef() useRef() nedir?useRef() render için gerekli olmayan bir değere başvurmanızı sağlayan bir React Hook'tur. UseCaseIt, işlevsel bir bileşen içindeki bir nesneye başvurmak için kullanılır ve yeniden oluşturma işlemleri arasında başvurulan nesnenin durumunu korur.
Gündem: Giriş: TL; Ama okuyabilirim: A / B testi, CloudFront ve Lamba @ edge hakkında zaten bilginiz varsa, AWS Lambda @ edge ile doğrudan A / B testine gidin. A / B testi nedir? A / B testi, kullanıcıların bir web sitesinin iki farklı versiyonunun katılımını karşılaştırmaya odaklanan bir UX araştırma metodolojisidir.
Bugün AppStore'daki birçok uygulama, tablo görünümünü kaydırırken içeriği tablo görünümü başlığındaki ölçekleme gibi davranışlara sahiptir. Bu tür davranışlara nasıl ulaşabileceğimizin en basit yaklaşımını size göstereceğim.
İlk blogumda söz verdiğim gibi 'DOM Nedir?' burada 'DOM işleme' üzerine bir blog var. Bu blogda DOM'a daha fazla dalacağız ve DOM işlemenin ne olduğunu ve nasıl yapıldığını öğreneceğiz.
Node.js'de akışların nasıl çalıştığını hiç merak ettiniz mi? Sahiptim.