Anastas
привет народ! как быстро открыть эмулятор андроид через командную строку?
а то каждый раз приходиться запускать андроид студио, и потом его закрывать
Anastas
оо спасибо! скоро пойду проверю )
Anastas
да, сработало 👍🏻👍🏻👍🏻 я немного улучшил команду )))
emulator -avd Pixel_3_API_28 &
эта папка в PATH уже добавлена как оказалось )
Андрей
Итог здравствуйте 9
Anatoliy
Есть ли способ разрешить WebView видеть локальные файлы? Я использую react-native-cached-image чтобы кэшировать картинки, создаю WebView вот с такими свойствами:
allowFileAccess={ true }
allowUniversalAccessFromFileURLs= { true }
Anatoliy
файл который хочу показать находится по пути вида /data/user/0/com.appid/cache/imagesCacheDir/image.jpg
🔥
ребята
🔥
а как создавать альбомы в галерее
Vasyl
Vasyl
"dependencies": {
"@babel/runtime": "^7.0.0",
"@builderx/utils": "^0.1.6",
"@ptomasroos/react-native-multi-slider": "^1.0.0",
"@react-native-community/async-storage": "^1.4.2",
"color": "^3.1.0",
"google-libphonenumber": "^3.2.2",
"i18n-js": "^3.2.1",
"lodash": "^4.17.11",
"lz-string": "^1.4.4",
"lzjs": "^1.3.0",
"moment": "^2.24.0",
"patch-package": "^6.1.0",
"prop-types": "^15.6.2",
"ramda": "^0.25.0",
"react": "16.5.0",
"react-multistep": "^3.2.4",
"react-native": "^0.59.9",
"react-native-accessibility": "^1.0.7",
"react-native-animatable": "^1.3.2",
"react-native-card-stack-swiper": "^1.1.0",
"react-native-contacts": "^4.0.2",
"react-native-country-picker-modal": "^0.7.1",
"react-native-custom-picker": "^0.3.1",
"react-native-deck-swiper": "^1.5.26",
"react-native-device-info": "^2.1.2",
"react-native-draggable-grid": "^1.0.5",
"react-native-elements": "^0.19.1",
"react-native-facebook-account-kit": "^1.1.0",
"react-native-fast-image": "^5.1.2",
"react-native-fbsdk": "^0.8.0",
"react-native-firebase": "^5.3.1",
"react-native-fs": "^2.13.3",
"react-native-geolocation-service": "^2.0.0",
"react-native-gesture-handler": "^1.1.0",
"react-native-gifted-chat": "^0.7.3",
"react-native-gradient-buttons": "^1.2.9",
"react-native-image-picker": "^0.27.2",
"react-native-indicator": "^1.0.0",
"react-native-iphone-x-helper": "^1.2.0",
"react-native-keyboard-aware-scroll-view": "^0.8.0",
"react-native-languages": "^3.0.2",
"react-native-linear-gradient": "^2.5.3",
"react-native-loading-spinner-overlay": "^1.0.1",
"react-native-modal": "^7.0.2",
"react-native-modal-datetime-picker": "^6.0.0",
"react-native-multistep-wizard": "0.0.1",
"react-native-permissions": "^1.1.1",
"react-native-phone-input": "^0.2.1",
"react-native-pose": "^0.9.0",
"react-native-reanimated": "^1.0.0-alpha.12",
"react-native-search-box": "0.0.19",
"react-native-settings": "^0.1.0",
"react-native-share": "^1.1.3",
"react-native-simple-markdown": "^1.1.0",
"react-native-simple-modal": "^9.0.1",
"react-native-smooth-pincode-input": "^1.0.3",
"react-native-sort-grid": "^1.0.1",
"react-native-sound": "^0.10.12",
"react-native-splash-screen": "^3.2.0",
"react-native-svg": "^9.3.7",
"react-native-switch": "^1.5.0",
"react-native-textarea": "^1.0.2",
"react-native-vector-icons": "^6.4.2",
"react-native-view-shot": "^2.5.0",
"react-native-webview": "^5.3.1",
"react-navigation": "^3.9.0",
"react-navigation-fluid-transitions": "^0.3.1",
"react-redux": "^5.1.0",
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"redux-persist": "5.6.12",
"redux-thunk": "^2.3.0",
"socket.io-client": "^2.1.1",
"sockette": "^2.0.5",
"svg-path-properties": "^0.4.5",
"ws": "^7.0.0"
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/preset-env": "^7.4.5",
"@jest/reporters": "^24.8.0",
"@types/jasmine": "^3.3.13",
"babel-eslint": "^10.0.1",
"babel-jest": "23.6.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"babel-preset-latest": "^6.24.1",
"babel-preset-react-native": "^4.0.1",
"detox": "^12.11.2",
"detox-expo-helpers": "^0.6.0",
"eslint": "^5.3.0",
"eslint-config-airbnb": "17.1.0",
"eslint-config-google": "^0.11.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.1",
"eslint-plugin-react": "^7.11.0",
"expo-detox-hook": "^1.0.10",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.46.0",
"react-test-renderer": "16.5.0"
},
"rnpm": {
"assets": [
"./assets/fonts/"
]
},
"jest": {
"preset": "react-native",
"transform": {
"^.+\\.js$": "babel-jest"
}
},
"detox": {
"test-runner": "jest",
"specs": "./e2e/",
"configurations": {
"ios.sim.debug": {
Vasyl
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/PlayDate.app",
"build": "xcodebuild -project ios/PlayDate.xcodeproj -scheme PlayDate -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone Xʀ"
}
}
}
}
Vasyl
Vasyl
Vasyl
Vasyl
Dmitriy (Dima)
Всем привет.
Подскажите канал с вакансиями для поиска фронтэнд разработчиков
Никита
в описании канала. @javascript_jobs
Может кстати правила в закреп вернуть?
Kir
Привет
Подскажите как "нажать" кнопку под modal?
Dmitry
Artem
Как делается оценка приложения в AppStore и Google Play? Какая механика вообще для пользователя ? Что со стороны UI должно быть ?
Vladimir
Denis
Denis
Если мне нравится я сам пойду поставлю
Denis
И я не один такой
Vladimir
не спорю)
Vladimir
я вот вообще оценки не ставлю, но люди разные
Artem
Спасибо за помощь
Vladimir
Артем
Есть кто-нибудь кто хорошо шарит в realm js?
Dmitry
Артем
сча распишу
Артем
делаю мессенджер, есть диалоги и есть и в каждом диалоге есть список сообщений. Можно сделать чтобы у каждого диалога был список сообщений, а можно чтобы сообщения были сами по себе. Вопрос: что будет по производительности быстрей, получение сообщений из списка сообщений(их может быть десятки тысяч) или получение сообщений через диалог(сделать чтобы у каждого диалога были свои сообщения)?
Артем
если непонятно расписал могу перефразировать
Anonymous
эммм
Anonymous
а частями получать? зачем сразу то всё подргужать?
Артем
сразу получать я не собираюсь
Anonymous
тогда не понял
Артем
1) можно хранить все сообщения для всех диалогов в одном списке собщений и потом отсеивать сообщения по диалогу
2) можно хранить сообщения в каждом диалоге отдельно и из диалога получать список сообщений(придется сначала диалог найти)
Артем
первый вариант
Артем
class MessageSchema {
public static schema: Realm.ObjectSchema = {
name: 'Message',
primaryKey: 'id',
properties: {
id: 'int',
message: 'string',
userCreator: 'UserPreview'
}
};
public id: number;
public message: string;
public userCreator?: UserPreview;
}
class DialogSchema {
public static schema: Realm.ObjectSchema = {
name: 'Dialog',
primaryKey: 'interlocutorId',
properties: {
lastMessage: 'Message?',
unreadMessagesCount: 'int?',
interlocutor: 'UserPreview?',
}
};
public lastMessage: Message;
public unreadMessagesCount: number;
public interlocutor: UserPreview;
}
Артем
второй вариант
Артем
class MessageSchema {
public static schema: Realm.ObjectSchema = {
name: 'Message',
primaryKey: 'id',
properties: {
id: 'int',
message: 'string',
userCreator: 'UserPreview'
}
};
public id: number;
public message: string;
public userCreator?: UserPreview;
}
class DialogSchema {
public static schema: Realm.ObjectSchema = {
name: 'Dialog',
primaryKey: 'interlocutorId',
properties: {
lastMessage: 'Message?',
unreadMessagesCount: 'int?',
interlocutor: 'UserPreview?',
messages: 'Message[]'
}
};
public lastMessage: Message;
public unreadMessagesCount: number;
public interlocutor: UserPreview;
public messages: Message[];
}
Артем
боюсь что если хранить все сообщения для всех диалогов в одном списке(сообщений может быть очень много), то при получении сообщений по кокретному диалогу производительность может быть не очень
Артем
понятно выразился?
Anonymous
так ты цепляй за неделю например, если потребуется тащи еще с сервака, зачем локально всё хранить?
Anonymous
или в настройках поставь за какое время хранить локально
Артем
😂
Артем
надо чтобы при получении сообщений с сервака они все в бд записывались чтобы в оффлайне можно было читать
Артем
телега же работает в оффлайне, так же нужно
Anonymous
да она черех жопу работает, половина диалогов есть, половины нет
Anonymous
ну 10 000 сообщений в текстовом формате это не много же
Anonymous
тыж не файлы хранишь
Anonymous
и 1 000 000 не много
Anonymous
устройства щас увсех вместительные
Артем
в общем походу пойду в гитхаб у них спрашивать
Артем
нужно самый производительный вариант найти
Anonymous
отпиши тут потом)
Артем
окей)
Anonymous
а то я тоже с ним поработать планирую
Артем
https://github.com/realm/realm-js/issues/2421
Артем
Вот еще раз здесь расписал, если выше описанное непонятно кому-либо)
Dmitry
То есть, даже так, они новые сообщения записывают в кэш, поверх сообщений в старых диалогах, в которых ты давно ничего не писал
Dmitry
ты все равно не сможешь хранить все сообщения оффлайн, все ресурсы телефона конечны, поэтому можешь смело хранить 100-300 сообщений, каждого диалога, а при скроле, когда они закончатся подгружать с сервера не кладя в кэш.
Anonymous
Kir
В смысле? Модалка перекрывает все, что под ней же
Да, это так. Но при условии, что Modal transparent=true и отступе, скажем, сверху, можно увидеть, что находится под modal. Обычно вверху элементы управления, кнопки. Вот к ним доступ и необходим.
Dmitry
Да, это так. Но при условии, что Modal transparent=true и отступе, скажем, сверху, можно увидеть, что находится под modal. Обычно вверху элементы управления, кнопки. Вот к ним доступ и необходим.
Нет, не так. Модалка перекрывает все, что под ней. Отступы позволяют корректировать положение содержимого модального окна, но не самой модалки
Артем
Vasiliy
Доброго дня
может кто-то подскажет, где можно толковое почитать про реверс ipa ? что-то я нагуглил только совсем базовые вещи
Dmitry
Kir
Спасибо...
Пойду пилить анимированый View 😏
Vladislav