На ранней стадии разработки iOS нам могут понадобиться некоторые фиктивные данные или сгенерированные данные для подачи пользовательского интерфейса. И есть несколько замечательных JS-библиотек, которые мы можем использовать для ускорения разработки под iOS. В этой истории я возьму faker.js в качестве примера, чтобы показать вам, как использовать JS-код в Swift.
Что такое faker.js
faker.js — генерировать огромное количество поддельных данных в браузере и node.js
faker.js — это отличная коллекция общих данных, таких как страна, имя пользователя, адрес электронной почты, аватар и т. д.
name: firstName, lastName, findName, jobTitle, gender, prefix, suffix, title, jobDescriptor, jobArea, jobType address: zipCode, zipCodeByState, city, cityPrefix, citySuffix, streetName, streetAddress, streetSuffix, streetPrefix, secondaryAddress, county, country, countryCode, state, stateAbbr, latitude, longitude, direction, cardinalDirection, ordinalDirection, nearbyGPSCoordinate, timeZone image: avatar, imageUrl, abstract, animals, business, cats, city, food, nightlife, fashion, people, nature, sports, technics, transport, dataUri, lorempixel, unsplash, lorempicsum phone: phoneNumber, phoneNumberFormat, phoneFormats random: number, float, arrayElement, arrayElements, objectElement, uuid, boolean, word, words, image, locale, alpha, alphaNumeric, hexaDecimal commerce: color, department, productName, price, productAdjective, productMaterial, product, productDescription company: suffixes, companyName, companySuffix, catchPhrase, bs, catchPhraseAdjective, catchPhraseDescriptor, catchPhraseNoun, bsAdjective, bsBuzz, bsNoun date: past, future, between, recent, soon, month, weekday finance: account, accountName, routingNumber, mask, amount, transactionType, currencyCode, currencyName, currencySymbol, bitcoinAddress, litecoinAddress, creditCardNumber, creditCardCVV, ethereumAddress, iban, bic, transactionDescription internet: avatar, email, exampleEmail, userName, protocol, url, domainName, domainSuffix, domainWord, ip, ipv6, userAgent, color, mac, password lorem: word, words, sentence, slug, sentences, paragraph, paragraphs, text, lines ...and more
В JS вы можете использовать faker.js для генерации случайных данных.
//javascript const faker = require('faker'); const randomCountry = faker.address.country(); const randomEmail = faker.internet.email();
Случай перечисления в сопоставлении Swift с именем функции в JS
Чтобы использовать его в Swift, первым делом нужно импортировать библиотеку js в JSContext с фреймворком JavaScriptCore. Поскольку в JContext нет переменных window и глобальных, нам нужно создать global с текущим контекстом.
И мы используем вложенное перечисление, чтобы сохранить согласованность пространства имен с JS. Регистр представляет имя функции поддельного JS.
Как генерировать данные в Swift?
Когда мы вызываем случайноевычисляемое свойство перечисления case, оно просто делегирует задание подделке JS через JS через JContext.
//swift let randomCountry = Faker.Address.country.random
Мы полностью примем эту JS-библиотеку, если продолжим сопоставлять дополнительные перечисления с поддельным JS. Теперь, с сгенерированными данными, мы можем освободить себя, чтобы наполнить пользовательский интерфейс, не дожидаясь готовности внутреннего API.