Search
Write a publication
Pull to refresh
0
Евгений Дац @hintozread⁠-⁠only

User

Send message

7 правил создания красивых интерфейсов

Reading time8 min
Views182K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Вступление


Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
  • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
  • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

Если вы ходили в художественную школу или считаете себя хорошим дизайнером интерфейсов, то скорее всего это руководство покажется вам а) скучным, б) неправильным или даже в) вызывающим раздражение. Это нормально. Просто закройте эту вкладку и двигайтесь дальше.

А пока давайте я расскажу, что вы найдёте в этой статье.

Читать дальше →

UITableView: добавляем иконку в UITableViewRowAction

Reading time4 min
Views8.9K
iOS SDK дает нам «из коробки» два варианта настроить кнопку, которая будет показана при сдвиге UITableViewCell влево.




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

- (NSString *)tableView:(nonnull UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
    return @"Настроить";
}


Второй вариант, доступный с iOS 8, больше привлекает, поскольку есть возможность указать стиль кнопки (Destructive, Normal), а также в случае надобности установить конкретный цвет фона через backgroundColor.

- (NSArray<UITableViewRowAction *> *)tableView:(nonnull UITableView *)tableView editActionsForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
    UITableViewRowAction *configureAction;
    configureAction = [UITableViewRowAction
                       rowActionWithStyle:UITableViewRowActionStyleNormal
                       title:@"Настроить"
                       handler:^(UITableViewRowAction * __nonnull action, NSIndexPath * __nonnull indexPath) {
                          // handle
                       }];
    
    return @[ configureAction ];
}


Ни первый, ни второй варианты не дают возможности назначить иконку, что довольно неприятно.
Но мы всё равно попробуем что-нибудь сделать.
Читать дальше →

Как упростить жизнь iOS разработчику

Reading time8 min
Views16K
Наверное, каждый разработчик, когда начинает осваивать новую технологию, хочет опробовать все самостоятельно, реализовать все с самого низкого уровня, чтобы потом наслаждаться результатом своей работы. Однако с накоплением опыта многие задачи становятся достаточно скучными и хочется избавить себя от этой нужной, но неинтересной рутины. В этой статье я хочу поделиться тем, какие способы и средства помогут упростить жизнь разработчику и сэкономить нервы.
Читать дальше →

11 крутых сайтов для iOS разработчиков

Reading time3 min
Views41K


Чтобы оставаться профессионалом в разработке iOS приложений, нужно постоянно учиться у других и узнавать о новейших инструментах и приемах. Кроме сайта Apple с документацией, существуют несколько ресурсов с ценными статьями и уроками, которые помогут нам стабильно развиваться. О них и пойдет речь в этой статье.
Читать дальше →

Записки iOS программиста о его молотках, кувалдах и микрометрах

Reading time20 min
Views32K
В один прекрасный момент, когда на собеседованиях меня уже убеждали, что я senior iOS developer — у меня возникло ощущение, что я уперся. Пишу похожий код, решаю задачи похожими способами и ощущение, что непонятно, куда развиваться дальше. Я думаю, с этой проблемой сталкивался не один я — нехваткой новых идей, концепций, направлений. Я бы хотел рассказать вам о тех инструментах и фреймворках, которые помогли преодолеть мне это ощущение.

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


Читать дальше →

Коммуникатор Huawei Honor — впечатления от использования

Reading time3 min
Views29K
Месяц назад обзавелся Huawei Honor, а с неделю назад окончательно на него переехал с HTC Desire. Полноценный обзор писать не буду, в сети их и так уже достаточно, но по мелочи что-то написать хочется.


Читать дальше →

FreeNAS 9.1.1 — создаем сетевое хранилище. Часть 1. Установка

Reading time5 min
Views357K

Вступление


FreeNAS 9.1.1 — дистрибутив для быстрого развёртывания сетевого хранилища, основан на базе FreeBSD, отличается интегрированной поддержкой ZFS и полностью настраивается через веб-интерфейс. Для организации доступа к хранилищу поддерживается FTP, NFS, Samba, AFP, rsync и iSCSI, для повышения надежности хранения может применяться программный RAID (0,1,5), для авторизации клиентов реализована поддержка LDAP/Active Directory.

Версия FreeNAS 9.1.1 примечательна переходом на кодовую базу FreeBSD 9, (прошлый выпуск был основана на FreeBSD 8.3), а также проведением огромной работы по улучшению удобства использования, стабильности и производительности. Улучшения затронули практически все подсистемы дистрибутива, от web-интерфейса до системы подключения плагинов. Инфраструктура разработки проекта переведена на использование Git.

FreeNAS можно установить на жесткий диск или USB-флешку. При этом система занимает весь объем носителя на который устанавливается, не зависимо от емкости, а все сетевые ресурсы для хранения информации размещаются на других жестких дисках.
т.е. сама система freenas занимает 1 жёсткий диск на котором нельзя ничего хранить, а на втором уже может хранится вся наша инфа!

Надеюсь, я вас не сильно утомил таким длинным вступлением, поэтому давайте уже перейдем к установке. Предварительно скачайте iso-образ FreeNAS и запишите его например компакт-диск.

Установка.


Вставляем CD-диск с FreeNAS в привод, и загружается с него. Видим такую картину

Читать дальше →

Information

Rating
Does not participate
Location
Краснознаменск (Московская обл.), Москва и Московская обл., Россия
Date of birth
Registered
Activity