• В какой валюте выставляется стоимость продуктов для in-app billing?

    maaGames
    @maaGames
    Погроммирую программы
    Для каждой страны в её валюте. Есть автоконвертация по какому-то курсу, для автоназначения всем странам. Для разных стран можно разную стоимомть задать.
    Про минимум не знаю.
    Ответ написан
    Комментировать
  • Мобильная разработка приложений: Java или JavaScript?

    GavriKos
    @GavriKos
    На текущий момент для андроида нативным языком является Java. То что вы конвертируете из JavaScript или еще из чего то - это все может привести к падению производительности, или например к отсутствию поддержки каких то новых фич со стороны платформы.
    Ответ написан
    Комментировать
  • Как убрать возможность просмотра фильмов на компьютере?

    @oni__ino
    Как бы вы не старались, люди найдут как обойти. Принесут свой portable плеер или браузер с установлеными плагинами: сам так делал, ничего проще чем обмануть админов ;-) Можно пустить интернет только через прокси-сервер, и на стороне прокси делать такие ограничения. Ну файлы больше 20мб нельзя скачивать или там еще что-нибудь придумать. Но это борьба с ветром. И с людьми которые не хотят работать.
    Ответ написан
    Комментировать
  • Зачем в языке Go приняты отступы в 8 символов?

    Там не 8 символов, там tab. Вы можете настроить в вашем текстовом редакторе размер табуляции в нужное вам количество символов.
    Ответ написан
    Комментировать
  • Чем спецификация отличается от документации в JAVA?

    zolt85
    @zolt85
    Программист
    Спецификация - это сухое описание продукта или подхода. ТТХ если хотите. Документация же может содержать советы по применению продукта основанного на спецификации, или наоборот совету по не применению.

    По ссылке, которую Вы привели находится спецификация API 8 JDK.

    При разработке пользуются в основном гуглом, чтоб найти документацию. К спецификации прибегают в крайне запутанных случаях, например когда мы делаем свою реализацию API чего либо, и нам нужно придерживаться спецификации.

    Спецификация языка Java есть по такому адресу: https://docs.oracle.com/javase/specs/.

    ИМХО, понять ее не в состоянии даже те, кто ее написал)
    Ответ написан
    1 комментарий
  • Как изменить еденицы измирения в Фотошопе?

    Shugich
    @Shugich
    Фронтенд-разработчик
    Здесь:
    ad15399e283c4b7bbcd2c1685e0bbdd4.png
    Ответ написан
    Комментировать
  • Как запустить jar от Intelij IDEA в Ubuntu 14.04?

    zolt85
    @zolt85
    Программист
    Запускать jar нужно так:
    java -jar NameOfYourOwesomeProgramm.jar

    Больше информации о параметрах можно узнать командой
    man java
    Ответ написан
    7 комментариев
  • Обновленный эмулятор в Android Studio 2.2 или Genymotion?

    2Ra66it
    @2Ra66it
    Да, новый эмулятор теперь работает очень шустро, намного быстрее чем Genymotion, добавлены полезные встроенные приложения (Google maps, Play Games и др.). Сам эмулятор запускается намного быстрее, так же как и устанавливает и запускает ваши приложения. Никаких фризов, все работает идеально. Теперь отдаю предпочтение новому эмулятору. 707999b402fd41e3a1a0a4265cbc1b84.PNG
    Ответ написан
    3 комментария
  • В чем смысл ежедневных сборок?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Варианты могут быть такие:
    а) На каждый коммит сразу идет сборка продукта и прогоняются интеграционные тесты.

    Плюсы такие - на рабочем месте вам нужен только GIT и IDE, все компиляторы, окружение для запуска приложения - на нодах билдсервера. В результате вы можете кодить откуда угодно, и сразу проверять целостность сборки с каждым коммитом.

    б) сборка может быть ночной. Например потому что билд идет 5 часов на толстом сервере, и на рабочей машине он будет идти 10-15 часов, а то и не идти вообще. Тогда конечно, желательно не ломать билд недоделанными коммитами. Но git же позволяет коммитить без пушей, либо пользоваться бренчами, и настраивать сборку не на просто коммит, а на мерж в девелоперский или мастер бренч.

    в) Билдов может быть много, разных, под билдами вообще не обязательно подразумевается компиляция, а например прогон исходников через какой-нить анализатор кода, с репортом, могут гоняться тесты для отдельных компонентов.

    Ну и кроме того, у разработчиков своя работа, у тестировщиков своя. Полезно тестировать фичи по мере их появления, а не ждать неделю, а потом сидеть в мыле.
    Ответ написан
    3 комментария
  • Почему у меня вылетает программа?

    @lazard105
    Написано ведь : NetworkOnMainThreadException.
    Запрос нужно выполнять в отдельном потоке.

    Вызывайте свой метод так:
    new Thread(){
                @Override
                public void run() {
                     connect.getData(_encoding, _url)
                }
            }.start();
    Ответ написан
    Комментировать
  • Не зазорен ли поиск ответов в Google на работе?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    Зазорно не учиться и не искать знания.
    Ответ написан
    Комментировать
  • Не зазорен ли поиск ответов в Google на работе?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Не то что "не зазорен", а даже входит в перечень вопросов в некоторых собеседованиях, в стиле "Что вы будете делать, если не знаете как реализовать вот это, а рядом не у кого спросить?".

    Другое дело, если большую часть своих задач вы будете гуглить, это может вызвать сомнение в вашей квалификации (если вы изначально позиционировали себя как опытного специалиста).
    Ответ написан
    Комментировать
  • Как узнать список запущенных на iPhone приложений из своего?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    1 никак
    2 никак
    3 если сейчас активно ваше приложение, то активное приложение ваше, иначе никак

    Вариант с джеил брейком и приват апи не рассматриваю

    UPD. при желании можно попробовать узнать установлены ли у пользователя некоторые приложения из заранее известного и зашитого в ваше приложение списка через [UIApplication canOpenURL:"url со схемой нужного приложения"ъ
    Ответ написан
    Комментировать
  • Каким образом в играх сохраняются данные?

    Стоит сейчас похожая задача, есть pet project по типу КР и других подобных игр. В процессе решения данного вопроса, делаю примерно так:
    1. В игре, разумеется, есть некая модель вселенной. В моем случае это звездные системы, которые являются контейнерами для SpaceObject'ов, в которые уже входят планеты/корабли и другие объекты.
    2. Таким образом, состояние игры можно сохранить как звездные системы и их содержимое, ну и не забыть сериализовать вспомогательные коллекции, типа капитанов кораблей и другой глобальной информации.
    3. Сериализация вселенной происходит в json. Я пишу игру на unity3d, поэтому мне кажется удобным использовать местный JSONUtility, умеющий проводить сериализацию простых классов (т.е. публичные поля и простые коллекции). Процесс таков: для всего, что я хочу (де)сериализовать, создаю класс-прокси, отражающий в простой форме (без всяких конструкторов, свойств, приватных членов и всего такого) содержимое нужного мне класса, с которым я уже и работаю.

    Цикл сохранения/загрузки, к примеру, звездной системы, такой:
    1. Создаем прокси для StarSystem, он в себя копирует информацию о системе.
    2. Когда доходим до списка объектов, для каждого из них создаем уже класс-прокси объекта и результирующий экземпляр уже заносится в прокси StarSystem.
    3. И т.д., пока сложные объекты не закончатся.
    4. В итоге, имеем матрешку из прокси-классов. С помощью JSONUtility она одной строчкой может быть переведена в json или восстановлена из него.
    5. Ну а сами сериализуемые классы должны уметь получать информацию из своих проксей при загрузке из сохранения.


    Собственно, недавно начал это дело реализовывать, т.ч. пока не знаю, насколько оно окажется удобным в использовании. Вполне возможно, многих подводных камней я не вижу, или они всплывут при усложнении игры (например, когда добавятся больше логичесих связей, придется проверять, чтобы не сериализовать одно и тоже по нескольку раз, получая при загрузке разные объекты. Поэтому у всего должны быть некие ID, для предупрежления дублирования).

    Раз уж написал, буду благодарен, если более опытные разработчики укажут на крупные грабли в таком подходе, если они есть.
    Ответ написан
    3 комментария
  • Стоит ли сейчас изучать Kotlin?

    artemgapchenko
    @artemgapchenko
    Начните лучше с Java, мой вам совет. Kotlin очень хорош (я как раз сейчас на нём проект для себя разрабатываю), но смущает меня отсутствие официальной поддержки со стороны Google.
    Мотивация JetBrains в плане адаптации Kotlin к Android понятна - они хотят зайти на рынок языков под JVM через Android-разработчиков, которые давно уже стонут и плачут от Java 6/7. Непонятно, будет ли эта мотивация такой же сильной через пару лет, когда, например, Google определится с тем, что у них будет вместо Java, и определится не в пользу Котлина (если ещё определится, что, скажем так, вилами на воде написано). Или же Бреслав как главный идеолог проекта потеряет к нему интерес. Или же в JetBrains посчитают расходы/доходы, и решат зарезать поддержку Android. Много чего может произойти, а вам потом проект на нём поддерживать.
    Плюс, как правильно отметил в этом треде Денис Загаевский, вакансий мало, и неизвестно, будет ли их больше. А со знанием Java вы себе в обозримом будущем работу Android-разработчика точно найдёте, тут проектов как грязи - выбирай, не хочу.

    Update от 17.05.2017: Google объявил об официальной поддержке Kotlin для разработки под Android, так что теперь точно можно начинать вкладываться в него.
    Ответ написан
    1 комментарий
  • Как в Swift объединить два массива?

    DevMan
    @DevMan
    это не массивы, а словари (dictionary).

    extension Dictionary {
    	mutating func merge(other:Dictionary) {
    		for (key,value) in other {
    			self.updateValue(value, forKey:key)
    		}
    	}
    }
    
    let airports  = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
    let airports2 = ["YYZ2": "Toronto Pearson2", "DUB2": "Dublin2"]
    var airports3 = [String : String]()
    airports3.merge(airports)
    airports3.merge(airports2)
    
    print(airports3)
    // ["YYZ": "Toronto Pearson", "YYZ2": "Toronto Pearson2", "DUB": "Dublin", "DUB2": "Dublin2"]
    Ответ написан
    Комментировать
  • Как управлять поведением RecyclerView?

    Это происходит потому, что ты пересоздаёшь адаптер каждый раз зачем-то. Тебе нужно добавлять новые элементы в уже существующий адаптер и вызвать метод RecyclerView.Adapter#notifyItemRangeInserted() или RecyclerView.Adapter#notifyDatasetChanged() после этого.

    Что по поводу перехода на позицию: RecyclerView#scrollToPosition()
    Ответ написан
    1 комментарий
  • На самом деле ли в книге ошибки?

    @dmitryKovalskiy
    программист средней руки
    Вы пишете код вне конструктора или методов класса Zoo. Соответственно код подчеркивается. Если прямо вот так написано в книге - это ошибка.
    Ответ написан
    4 комментария