ბლოგი · პოსტი
გამოვუშვი woff2 Flutter-ისთვის
გამოვუშვი woff2 Flutter-ისთვის, რათა ერთი გავრცელებული პრობლემა გადამეჭრა: მუშაობა შრიფტებთან, რომლებიც .ttf ან .otf ფორმატში არ არის და ხშირად .woff ან .woff2 სახით მოდის, განსაკუთრებით ვებში.
Flutter-ის FontLoader შეუკუმშავი SFNT-შრიფტებისთვისაა გათვლილი, ანუ TTF/OTF-ბაიტებისთვის. WOFF2 ფაილის პირდაპირ ჩატვირთვის მცდელობა პრობლემებს იწვევს. ამის მოსაგვარებლად შევქმენი პაკეტი, რომელიც Flutter-ში .woff და .woff2 შრიფტების გამოყენების საშუალებას იძლევა: ის მათ SFNT-ბაიტებად დეკოდირებს და Flutter-ის შრიფტების სტანდარტული მექანიზმით არეგისტრირებს.
woff2 პაკეტის ძირითადი შესაძლებლობები:
- WOFF1-ისა და WOFF2-ის დეკოდირება
- შრიფტების ჩატვირთვა ასეტებიდან და ბაიტებიდან
- Flutter-ის FontLoader-ის wrapper
- CSS @font-face წესების პარსინგი
- ჩაშენებული data: URL შრიფტების მხარდაჭერა
- რამდენიმე სისქისა და სტილის ჯგუფური რეგისტრაცია
- აპლიკაციაში ნატიური plugin-კოდი საჭირო არ არის
ეს პაკეტი ანიმირებული SVG-ის რენდერინგზე მუშაობისას გაჩნდა: იქ შრიფტები ხშირად CSS-ითაა ჩაშენებული. WOFF/WOFF2-ის სათანადო მხარდაჭერის გარეშე ვიზუალური რენდერინგი შეიძლება ჩავარდეს მაშინაც კი, როცა SVG სწორად არის დაპარსული.
ეს ყველა Flutter-აპლიკაციას არ დასჭირდება, მაგრამ სასარგებლოა იმ აპლიკაციებისთვის, რომლებიც გარე კონტენტს ამუშავებს: SVG, HTML, EPUB, დოკუმენტების წინასწარი ნახვა, დიზაინის ექსპორტები, ელფოსტის რენდერინგი ან მდიდარი ტექსტის დამუშავების ნაკადები. ამ პაკეტს შეუძლია კონვერტაციის მომაბეზრებელი ეტაპი მოხსნას.
პაკეტი ჯერ კიდევ ადრეულ ეტაპზეა, მაგრამ ძირითადი ფუნქციონალი უკვე ჩამოყალიბებულია.
პაკეტი შეგიძლიათ აქ ნახოთ: pub.dev/packages/woff2 (იხსნება ახალ ჩანართში)
სიამოვნებით მივიღებ უკუკავშირს Flutter-დეველოპერებისგან, რომლებსაც არასისტემურ შრიფტებთან, SVG-ისა და დოკუმენტების რენდერინგთან ან ტიპოგრაფიით დატვირთულ აპლიკაციებთან მუშაობის გამოცდილება აქვთ.