• С чего начинать развиваться веб-дизайнеру?

    @eoffsock
    Кодер (Rails)
    Первый этап — подумать, надо ли это вам вообще. К хорошему дизайну на кривой козе не подъедешь.

    Прежде всего: Майк Монтейро «Дизайн — это работа». Даже если не будете потом заниматься дизайном — книга все равно полезная.
    Во многом избавляет от романтического подхода вроде «дизайнер — это художник».

    Второй этап — учиться: смотреть и делать свое.
    Только, во имя всех скандинавских богов, смотреть не на Behance и Dribble. Там красиво, конечно, стиль, все дела, но в конечном итоге 95% работ там просто картинки.
    А веб–дизайн — в первую очередь сценарий. Дизайнер определяет то, как пользователь будет пользоваться сайтом: в его власти сделать интерфейс простым и ясным или запутать до невозможности.
    Посмотрите работы бюро Горбунова, особенно процесс создания.

    Соответственно свои работы тоже нужно рассматривать с точки зрения полезного действия, а не внешней красоты. Эстетика — это третий этап.
    Учиться значит читать, в первую очередь. Чтобы делать правильно — нужна система.
    Читать лучше от общего к частному, начать стоит с этого:
    Дональд Норман «Дизайн привычных вещей»
    Виктор Папанек «Дизайн для реального мира»
    Параллельно:
    Генрих Альтшуллер «Найти идею»
    37Signals «Getting Real»

    Веб — это интерфейс, значит:
    Джеф Раскин
    «Новые направления в проектировании компьютерных систем», «Об интерфейсе»
    Брюс Тогнаццини «Главные принципы интерактивного дизайна»
    Якоб Нильсен «Веб-дизайн. Книга Якоба Нильсена»

    Веб — это шрифт и текст, стало быть:
    Ян Чихольд «Новая типографика»
    Эмиль Рудер «Типографика»
    Нора Галь «Слово живое и мертвое»
    Саша Карепина «Искусство делового письма»

    Веб — структура и верстка:
    Тим Харровер «Настольная книга газетного дизайнера»
    Мюллер-Брокман «Модульные сетки в графическом дизайне»

    Оставлю за кадром книги по самоуправлению и переговорам, это уже другая фаза.
    Про английский язык и умение верстать уже сказали, повторяться не буду.
    Ответ написан
    6 комментариев
  • Запуск Laravel - Error in exception handler?

    @vadimstroganov Автор вопроса
    Решил проблему!

    php artisan cache:clear 
    
    chmod -R 777 app/storage 
    
    php artisan dump-autoload
    Ответ написан
    2 комментария
  • Ios как прикрепить поле ввода к клавиатуре?

    1. Когда клавиатура появляется на экране в приложение "прилетает" нотификация UIKeyboardWillShowNotification. Когда клавиатура пропадает с экрана - UIKeyboardWillHideNotification соответственно.

    В контроллере, где необходимо каким-либо образом реагировать на это поведение необходимо подписаться на эти нотификации (например в viewDidLoad):

    - (void) registerNotification {
        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
        
        [nc addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
        [nc addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    }


    2. Рассмотрим возможную реакцию на появление клавиатуры:

    - (void) keyboardWillShow: (NSNotification *) notification {
        
        NSValue *value = [notification.userInfo objectForKey: UIKeyboardFrameEndUserInfoKey];
        CGRect keyEndFrame = [value CGRectValue];
        CGRect keyFrame = [self.view convertRect:keyEndFrame toView:nil];
        NSNumber *duration = [notification.userInfo objectForKey: UIKeyboardAnimationDurationUserInfoKey];
        
        [self showKeyBoardWithKeyFrame:keyFrame andDuration:[duration doubleValue]];
    }


    Вместе с нотификацией приходит много полезной информации о поведении клавиатуры в ближайшее время: ее размер, время анимации и даже поведение во время анимации (с затуханием или с разгоном).

    В приведенном коде мы берем финальный фрейм (keyEndFrame) в виде NSValue и преобразуем его в систему координат контроллера.
    Кроме того получаем длительность анимации (duration).

    3. Реакция на появление
    Предположим, что все наши элементы лежат в UIScrollView (_scrollView) и она занимает всю область экрана.
    Тогда нам достаточно лишь сдвинуть ее фрейм, что бы все элементы имели возможность быть показанными на экране.

    - (void) showKeyBoardWithKeyFrame:(CGRect)keyFrame andDuration:(NSTimeInterval) duration {
    	BOOL animation = (duration > 0.0) ? YES : NO;
    	CGFloat keyboardHeight = keyFrame.size.height;
    	CGFloat scrollHeight = self.view.bounds.size.height - keyboardHeight;
    	CGRect scrollFrame = _scrollView.frame;
    	scrollFrame.size.height = scrollHeight;
        
    	if (animation) {
    	    [UIView animateWithDuration:duration delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    	    	[_scrollView setFrame: scrollFrame];
    	    } completion:nil];
    	} else {
    		[_scrollView setFrame: scrollFrame];
    	}
    }
    Ответ написан
    Комментировать