• Как сделать не закрываемый экран? React Native и/или Android?

    @aol-nnov
    Как при звонке в Телеграм.

    у телеграмовского клиента под андроид исходники открыты. Пилите, Шура!
    Ответ написан
    Комментировать
  • Зачем нужен бэкенд, если можно создавать полноценные приложения на frontend фреймворках?

    @deliro
    Может быть, не знаю, что за панацея — этот всеми любимый Firebase, но как, допустим, на нём валидировать данные помимо валидации на клиенте? И я прошу учесть, что клиент никогда не является секьюрной стороной и всегда может подменить запрос, изменить код приложения и вообще отправлять запросы в обход фронтенда.

    Я представляю, как сделать на нём простейший CRUD, где юзеру будут доступны только его записи. А онлайн-банкинг получится? А как насчёт очереди заданий? Сделай мне без бэкенда простейший сервис, который меняет формат фильма и меняет его размер/аспект. Ну чтобы на ffmpeg, все дела. И естественно клиенту нельзя не отдавать ответ, пока не отрендерится весь фильм, надо делать это асинхронно. Или сделай мне приложение, куда я вкину исходники на Си/Go, выберу компилятор, а приложение отправит мне обратно бинарник скомпиленный. А вот ещё, смотри, придумал. А сделай мне систему, такую же, как Sentry, чтобы туда можно было спамить ошибками, а она мне на Vue.js на фронте выводила красивые графики всякие, ну ты знаешь. Или напиши мне телеграм-бота без бэкенда. А как насчёт логов? Например, я хакер и отправляю запросы через curl. У тебя будут логироваться они?
    Ответ написан
    Комментировать
  • Как создать пользователя для mongoDB?

    enhorse
    @enhorse
    Java Horse
    createUser

    для Java как-то так
    MongoClient mongo = new MongoClient("localhost", 27017);
    MongoDatabase db =  mongo.getDatabase("testDb");
    BasicDBObject command = new BasicDBObject();
    command.put("createUser", "testUser");
    command.put("pwd", "testPassword");
    command.put("roles", new String[]{"readWrite"});
    db.runCommand(command);


    Как нечто подобное провернуть в Mongoose написано например, тут
    Ответ написан
    Комментировать
  • Какое нужно разрешение на доступа к файловой системе iOS?

    @DragonSpirit
    Mobile Developer
    Ну вообще если мне не изменят память вы не сможете прочитать корень или любую другую директорию не вашего приложения на устройстве без jailbreak. Поэтому предлагаю использовать список констант, которые предоставляет react-native-fs
    Ответ написан
    Комментировать
  • Есть ли проблемы у кроссплатформенных приложений с фитнес браслетами и умными часами?

    Zatmil
    @Zatmil
    Fullstack-разработчик
    Если браслет может работать с устройством на уровне нативных методов, то с react-native не будет никаких проблем. Даже, если нет написанных библиотек для работы с ними, всегда можно написать нативный модуль согласно документации react-native, чтобы использовать его в приложении.
    Ответ написан
    7 комментариев
  • Прошу хорошую книгу по JS?

    @kidar2
    https://learn.javascript.ru/
    Там же по react есть материалы https://learn.javascript.ru/screencast/react
    Ответ написан
    Комментировать
  • Почему возникает ошибка Can't call setState (or forceUpdate) on an unmounted component?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Запоминайте id таймера, и в методе componentWillUnmount удаляйте таймер через clearTimeout
    Будет как-то так

    export default class LoadingMask extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            togle: false
        }
        this._timeId = null;
    }
    
    componentDidMount () {
        this._timeId = setTimeout(() => this.setState({togle: true}), 3000)
    }
    
    componentWillUnmount () {
        clearTimeout(this._timeId);
    }
    
    render() {
        return (
          <View>
            {this.state.togle ?
            <View style={{flexDirection: 'row', justifyContent: "center", marginTop: 20,}}>
                <Text style={{marginRight: 20, color: '#4488fe'}} onPress={this.props.action}>Попробовать еще раз?</Text>
                <Ionicons name="md-refresh" size={20} color="#4488fe" />
            </View>
            : <ActivityIndicator size="large" color="#CCC" /> 
            }
          </View>
        )
    }
    
    }
    Ответ написан
    1 комментарий
  • Как ускорить React Native?

    @DragonSpirit
    Mobile Developer
    В теории можно либо поддерживать более актуальный JSC при помощи этого, хотя сейчас разработчики сами обсуждают обновление JSC.
    Возможно для начала стоит попробовать попрофилировать и оптимизировать существующий JS код, как описано в доке.
    Ответ написан
    Комментировать
  • Загрузка кода в память на разных языках программирования?

    @remzalp
    Программер чего попало на чем попало
    Для компилируемых языков:
    1. Бывают оверлейные структуры, которые подгружаются по потребности в память, но это тех времён, когда DOS был
    2. Бывают плагины, которые лежат в dll и не обязательно загружаются при запуске программы

    Для интерпретируемых - вроде бы логично, что загрузили в память и поинтерпретировали.
    Ответ написан
    Комментировать
  • Загрузка кода в память на разных языках программирования?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Самые примитивные интерпретаторы, например bash, считывают файл скрипта с диска построчно и одновременно выполняют каждую считанную строку. Обычные интерпретаторы читают файл, анализируют код, строят AST и уже его выполняют. Современные продвинутые интерпретаторы (такие как PHP, CPython и Javascript V8) после построения AST компилируют его в байткод и выполняют уже байткод. Чаще всего у интерпретируемых языков этот байткод остаётся только в памяти и не сохраняется на диск. В отличии от них, в Java и C# этапы анализа кода и компиляции его в байткод отделены от этапа выполнения байткода. Скомпилированный код сохраняется в файлах и после выполняется виртуальной машиной. Компилируемые языки (C, C++ и прочие) компилируют AST не в байткод, а сразу в машинные инструкции. Впрочем, и они в последнее время всё чаще используют LLVM.
    Ответ написан
    Комментировать
  • В чем разница между flex-basis и width?

    vetero4eg
    @vetero4eg
    Frontend
    Flex-basis задает начальный размер элемента относительно главной оси флекс-контейнера. В зависимости от направления оси может быть похожим и на width, и на height. Скорее даже на min-width и min-height. Меньше чем flex-basis элемент не будет, но может быть больше, в зависимости от размеров контейнера, окна...

    Flex-basis дает гораздо больше возможностей для красивой адаптации макета на мобильные разрешения, например когда контейнер перестает быть row и становится column, или наоборот.

    P.S. Как меня справедливо поправили ниже, flex-basis ведет себя не так как min-width/height в том случае, когда не помещается в контейнер, не "вылазит".
    Ответ написан
    5 комментариев
  • Есть ли умный Polyfill?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    К сожалению так не бывает. Полифилы лишь помогают эмулировать некоторую отсутствующую функциональность. А вот новый синтаксис (стрелочные функции, оъбявления переменных через const, let и т.д.) - увы, нельзя обойти полифилом. Нужно предварительно, при сборке сайта конвертировать код в ES5. Для этого вам потребуется Babel.js
    Ответ написан
    Комментировать
  • И все-таки PHP 7 быстрее Python 3?

    Tark
    @Tark
    Pyramid'альный мир
    Но какая разница? У вас ведь скрипты ещё и с базами данных общаются?
    Предположим, написали вы сервис на чистом РНР без фреймворков, а для теста написали аналогичный сервис на Python/Django. Предположим, что на чистом РНР можно получить 10к запросов/сек, а на Django - жалкие 4к. Печаль.

    Но ваш сервис, например, будет использовать 5 запросов к БД, каждый из которых будет отрабатываться за 1мс. 5мс - чисто на запросы к БД.

    Итого: на РНР запрос будет выполняться за 5.0001мс, на Python/Django - за 5.00025мс... Неужели есть какая-то разница?
    Ответ написан
    6 комментариев
  • Вопрос от новичка по React?

    redux нужен для глобальных данных, общего состояния приложения (корзина товаров вполне подходит), для всего остального есть мас.. локальный стейт.
    --
    без него можно обойтись в твоем примере, если заврапить все компоненты которым нужна корзина в контейнер и передавать пропом во все ветки внутренних компонентов, как ты уже понял это стремно, не красиво и есть грабли вроде таких, что нам так же придется кидать в пропы и обработчики событий с общего контейнера.
    Ответ написан
    2 комментария
  • Vue.js или React.js?

    ajaxtelamonid
    @ajaxtelamonid
    Laravel
    Vue простой и прикольный. Работает не с виртуальным домом, а с реальным, это медленнее, но зато можно лазить снаружи разными jquery-плагинами. Если вам просто написать дипломный проект и забыть - используйте его. Вот тут есть простенький курс: https://laracasts.com/series/learning-vue-step-by-step

    Реакт нужен людям для реальной работы, чтобы можно было легко поддерживать большие SPA, не упираться во внезапные ограничения, архитектурные или перформансные. Плюс, изучив одну технологию, можно писать мобильные приложения при помощи React Native или десктопные при помощи electron и т.п.
    Ответ написан
    2 комментария
  • React Router. Разница между component и render?

    alvvi
    @alvvi
    export default apathy;
    Достаточно заглянуть в исходники, там нет ничего сложного, минимум магии
    тык
    59e168e514471167795753.png
    Ответ написан
    Комментировать
  • Подходит ли IDEA для разработки под андроид или лучше поставить android studio?

    @dvlprjv15
    Люблю программирование. Сейчас изучаю Python.
    Может этот 10-минутный ролик поможет взвесить все ЗА и ПРОТИВ?
    Ответ написан
    Комментировать
  • Как не обрабатывать клик по некоторым из вложенных элементов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Чьи клики не нужны:

    const selector = '.tr-class input[type="checkbox"]';

    Можно добавить нежелательным элементам обработчик, где будет останавливаться всплытие события:

    document.querySelectorAll(selector).forEach(function(n) {
      n.addEventListener('click', this);
    }, e => e.stopPropagation());

    Или, в уже существующем обработчике можно проверять, откуда событие пришло, если источник неподходящий - ничего не делать:

    for (const n of document.querySelectorAll('.tr-class')) {
      n.addEventListener('click', onClick);
    }
    
    function onClick(e) {
      if (e.target.matches(selector)) {
        return;
      }
    
      // ...
    }
    Ответ написан
    1 комментарий