Пачатак працы з RESS

Аўтар: Randy Alexander
Дата Стварэння: 23 Красавік 2021
Дата Абнаўлення: 16 Травень 2024
Anonim
How to crochet Clircle afghan blanket free easy pattern tutorial for begginerكروشيه مفرش سرير وردات
Відэа: How to crochet Clircle afghan blanket free easy pattern tutorial for begginerكروشيه مفرش سرير وردات

Задаволены

  • Неабходныя веды: Базавы PHP, базавы адаптыўны вэб-дызайн
  • Патрабуецца: PHP, Twitter Bootstrap, Modernizr, Swipe.js, WURFL
  • Час праекта: 2-4 гадзіны

Я ведаю, што нашай галіны не патрэбна іншая абрэвіятура, але вось вам яшчэ адна: RESS. RESS расшыфроўваецца як "Спагадны дызайн + кампаненты на баку сервера", і менавіта Люк Урублеўскі вінаваты ў тым, што вы даведаецеся яшчэ адзін тэрмін. Ён не вынайшаў чагосьці новага, калі напісаў пра гэта артыкул яшчэ ў верасні, але ён назваў тое, што раней многія называлі "гібрыдным" рашэннем.

Ідэя гэтага заключаецца ў тым, што мы спалучаем адаптыўныя метады вэб-дызайну і метады на баку сервера, каб забяспечыць аптымальны досвед працы для кожнай прылады. Гэта азначае, што мы будзем падаваць некалькі розных запытаў на некаторыя прылады па зададзеным URL-адрасе, але мы па-ранейшаму выкарыстоўваем прыёмы рэагавання для таго, што апынецца на гэтых прыладах. Тэхніка, прадстаўленая ў гэтым уроку, уяўляе сабой простае рашэнне RESS, якое прызначана для таго, каб пачаць працу за кароткі прамежак часу. Мы збіраемся стварыць адзіную адаптыўную старонку, якая ўключае некаторыя асноўныя элементы, якія на дзіва складаныя для выкарыстання на адаптыўных сайтах: выявы, рэклама і віджэты ў сацыяльных сетках.


01. Спагадны вэб-дызайн

Спагадны вэб-дызайн не патрабуе ўвядзення, але вы, напэўна, заўважылі, што большасць спагадных метадаў выкарыстоўваюць толькі код на баку кліента. І нездарма. Код заснаваны на вэб-стандартах, і калі новая прылада ці браўзэр суадносяцца з гэтымі стандартамі, наш сайт па-ранейшаму будзе працаваць па прызначэнні. А гэта таксама азначае, што ў нас ёсць адна база кодаў для ўсіх прылад. І гэтая частка адначасова і фантастычная, і крыху страшная.

У многіх выпадках гэта працуе вельмі добра, але мы таксама бачым некаторыя выпадкі, калі найменш здольныя браўзэры (часцей за ўсё мабільныя) пакутуюць ад занадта вялікай колькасці логікі і зместу, дрэннай юзабіліці і агульнай павольнай працы.

02. Кліент, сустрэньце сервер

Тут сервер можа дапамагчы. Традыцыйны спосаб стварэння рашэнняў для мабільных прылад альбо для пэўнай платформы - гэта стварэнне альбо асобнага мабільнага сайта, альбо прыкладання. Абодва спосабы распрацаваны для канкрэтнай прылады, і таму яны таксама добра працуюць для мабільных прылад (прынамсі, з пункту гледжання канчатковых карыстальнікаў). У абодвух рашэнняў таксама ёсць недахопы, як я ўпэўнены, вам вядома, але ў іх ёсць некалькі рэчаў, якіх няма ў многіх адаптыўных сайтаў: аптымізацыя прылады і хуткасць.


Нярэдкія выпадкі, калі адаптыўны вэб-сайт складае 2, 3 і нават 4 мегабайты і мае сотні HTTP-запытаў, і я магу сказаць вам зараз, што гэта занадта шмат. Асноўная ідэя адаптыўнага вэб-дызайну заключаецца ў тым, каб не адаптаваць канкрэтную прыладу, але ў некаторых выпадках мае сэнс зрабіць нейкую аптымізацыю на серверы.

03. Налада

Мы створым простую PHP-старонку (якая шмат у чым падобная на галоўную старонку часопіса ...). На сайце будзе віртуальная карусель, рэклама і ўбудовы для сацыяльных сетак. Мы засяродзім увагу на тым, каб зрабіць сайт простым у наладзе, і будзем выкарыстоўваць Twitter Bootstrap як адаптыўную структуру. Мы будзем выкарыстоўваць як функцыю, так і прыладу. Мы таксама будзем выкарыстоўваць Modernizer, каб дапамагчы ў выяўленні функцый і WURFL для выяўлення прылад. Мы збіраемся вызначыць памер экрана прылады як з боку сервера, так і з боку кліента, і будзем выкарыстоўваць яго для прыняцця рашэнняў адносна таго, якія выявы, рэкламу і змест мы будзем падаваць карыстальніку.


04. Выяўленне функцый і выяўленне прылад

Пры такой наладзе мы маем дзве крыніцы інфармацыі пра браўзэр. Modernizr - гэта сістэма выяўлення функцый, якая дазваляе лёгка выяўляць функцыі браўзэра. Ён проста запускае тэст у браўзэры, каб атрымаць лагічны адказ як вывад: "X працуе?" і адказ у асноўным "праўдзівы" альбо "ілжывы". Прыгажосць гэтага ў тым, што ён працуе ва ўсіх браўзэрах, таксама ў тых, якія яшчэ не выпушчаны. Але ён не мае вялікай дэталізацыі, і даступныя магчымасці абмежаваныя магчымасцю праверкі функцый. Прыклады функцый, якія можна праверыць, ўключаюць Boxshadow, csstransitions, touch, rgba, геолокации і гэтак далей.

З іншага боку, выяўленне прылад - гэта нешта іншае. Усё гэта адбываецца на серверы, і гэта структура, якая аналізуе загаловак HTTP прылады. Затым ён шукае ў базе дадзеных вядомых прылад і вяртае набор магчымасцей для гэтай прылады. Прыгажосць гэтага ў тым, што гэта база звестак, якую збіраюць і падтрымліваюць людзі, і яна можа змяшчаць неверагодна падрабязную інфармацыю пра магчымасці, якую ў цяперашні час немагчыма праверыць. Прыклады ўключаюць тып прылады (настольны, тэлевізар, мабільны тэлефон, планшэт), маркетынгавую назву прылады, падтрымку відэакодэкаў і гэтак далей.

Недахопам з'яўляецца тое, што аналіз User Agent можа часам пайсці не так, і многія прылады, як правіла, маюць не унікальную радок UA альбо падробліваюць радок UA, але выкарыстанне фреймворка мінімізуе пералік ілжывых выяўленняў. Выяўленне прылад і выяўленне функцый сапраўды нельга наладзіць адно супраць аднаго, бо яны не з'яўляюцца двума бакамі адной медалі.

05. Дэманстрацыйны сайт

Пачнем кадзіраваць! Я пакажу вам, як вы можаце выкарыстоўваць RESS для вырашэння трох распаўсюджаных праблем: рэкламы, малюнкаў і ўбудоў у сацыяльных сетках. Дэманстрацыйны сайт, які мы пабудуем, знаходзіцца па адрасе andmag.se/ress/, і ўвесь код даступны ў рэпазітары Github.

Мы пачнем з загрузкі і налады інструментаў, якія мы збіраемся выкарыстоўваць. У гэтым уроку мы не будзем занадта засяроджвацца на адаптыўным кодзе, і мы будзем выкарыстоўваць Twitter Bootstrap, каб дапамагчы нам.

Вам трэба загрузіць файлы Bootstrap і распакаваць пакет. Bootstrap змяшчае папкі JS, CSS і IMG, і мы змесцім іх у тэчку "bootstrap" у нашым пустым праекце.

Далей нам трэба распачаць выяўленне прылады. Для гэтага мы будзем выкарыстоўваць прапанову ScientiaMobile WURFL Cloud. WURFL расшыфроўваецца як Wireless Universal Resource File, а WURFL - адна з найбольш часта выкарыстоўваюцца сістэм выяўлення прылад. Вам трэба зарэгістравацца ў ScientiaMobile, каб атрымаць ключ API, і тады вы можаце загрузіць хмарны кліент. Існуюць розныя версіі ў залежнасці ад наведвальнасці сайта і колькасці магчымасцей, якія вы хочаце. Я выкарыстоўваю стандартную версію, але ёсць і бясплатная версія, якую вы можаце выкарыстоўваць. Пасля рэгістрацыі перайдзіце ў налады ўліковага запісу і загрузіце код кліента PHP і змесціце код у тэчку з назвай "WURFL".

Пасля гэтага мы гатовыя пачаць дадаваць код. Мы засяродзім увагу на тым, каб усё было проста, і створым простую структуру файла. Мы таксама створым уласныя папкі CSS, JavaScript і малюнкаў. У гэтым прыкладзе мы створым толькі галоўную старонку, і ўвесь код ідзе ў index.php. Мы будзем выкарыстоўваць метад PHP "уключыць", каб уключыць іншыя файлы, каб пазбегнуць таго, каб увесь код быў у адным файле. index.php уключае header.php і footer.php разам з фрагментамі старонкі. header.php таксама ўключае WURFL.php і RESS.php. Хутка мы ўбачым, што будуць рабіць гэтыя файлы.

06. WURFL.php

WURFL.php уключае код для ініцыялізацыі кліента WURFL і будзе захоўваць магчымасці, да якіх вы маеце доступ, у масіве PHP.

? php
// Уключыце хмарны кліент WURFL
require_once ’WURFL / Client / Client.php’;

// Стварэнне аб'екта канфігурацыі
$ config = new WurflCloud_Client_Config ();

// Усталюйце ключ API WURFL Cloud - Зменіце яго на свой ключ
$ config-> api_key = ’12345: abcDEFabcDEFabcDEFabcDEF’;

// Стварэнне хмарнага кліента WURFL
$ кліент = новы WurflCloud_Client_Client ($ канфігурацыя);

// Вызначыць прыладу
$ client-> detectDevice ();
?> var13 ->

Пасля ініцыялізацыі кліента мы можам пачаць атрымліваць інфармацыю пра прыладу, якая ў цяперашні час выкарыстоўвае сайт у любым месцы кода:

? php
$ client-> getDeviceCapability ('brand_name');
?> var13 ->

07. RESS

Цяпер мы збіраемся стварыць спосаб спалучэння кліенцкага і сервернага выяўлення. Мы будзем выкарыстоўваць файл cookie для абмену інфармацыяй ад кліента да сервера. Найбольш важнай магчымасцю гэтага тэсту з'яўляецца шырыня экрана, таму мы ствараем файл RESS.php з некаторым кодам JavaScript, які вызначае памер экрана для нас. Мы таксама ствараем прастору імёнаў RESS і writeCookie () дапаможны метад. Затым мы можам атрымаць шырыню і напісаць кукі кліенту:

тып сцэнарыя = "text / javascript">

RESS = {};

RESS.writeCookie = функцыя (імя, значэнне) {// код cookie}

// Захоўваць шырыню ў файле cookie
RESS.storeSizes = function () {
// Атрымаць шырыню экрана
var шырыня = window.innerWidth;

// Усталяваць cookie з магчымасцямі на баку кліента.
RESS.writeCookie ("RESS", "шырыня." + Шырыня);
}

RESS.storeSizes ();
/ сцэнар>

Мы таксама рэгіструем падзею onresize, каб мы маглі пісаць файлы cookie, калі акно змяніла памер альбо прылада змяніла арыентацыю, не толькі пры загрузцы новай старонкі. Падзея onresize, як правіла, вельмі радасна, таму мы чакаем секунду, перш чым пісаць новае значэнне.

RESS.isResizeActive = ілжыва;

window.onresize = функцыя (падзея) {
калі (! RESS.isResizeActive) {
RESS.isResizeActive = праўда;

// пераканайцеся, што мы не робім гэтага занадта часта, пачакайце 1 секунду ...
window.setTimeout (function () {
RESS.storeSizes ();
RESS.isResizeActive = ілжыва;
}, 1000);
}
}

Далей нам патрэбны PHP-код для прачытання файла cookie, каб мы маглі зрабіць шырыню экрана даступнай і на баку кліента.

$ RESSCookie = $ _COOKIE [’RESS’];
калі ($ RESSCookie) {
$ RESSValues ​​= выбухнуць (’|’, $ RESSCookie);
$ featureCapabilities;
foreach ($ RESSValues ​​як $ RESSValue) {
$ магчымасць = выбухнуць ('.', $ RESSValue);
$ featureCapabilities [$ capability [0]] = $ магчымасць [1];
}
}

Мы таксама атрымаем шырыню на баку сервера ў якасці рэзервовага. Гэта важна, бо яно будзе выкарыстоўвацца, калі ў нас няма доступу да файлаў cookie пры загрузцы першай старонкі альбо калі файлы cookie або JavaScript адключаны.

$ WURFLWidth = $ client-> getDeviceCapability ('max_image_width');
if ($ client-> getDeviceCapability ('ux_full_desktop')) {
$ WURFLWidth = 1440;
}

Шырыня экрана WURFL па змаўчанні для "працоўнага стала" складае 600, таму мы пераконваемся, што мы па змаўчанні маем вялікі памер і дазваляем хуткаму коду апрацоўваць памер экрана, калі ён меншы. І зыходзячы з гэтага, зараз мы можам атрымаць шырыню экрана на баку сервера і са зваротам да шырыні WURFL:

$ defaultWidth = ($ featureCapabilities ["шырыня"]? $ featureCapabilities ["шырыня"]: $ WURFLWidth);

08. Выявы

Вам ужо надакучыла чуць "спагадныя выявы"? Так і думаў. Дыскусія пра тое, як апрацоўваць выявы з розным дазволам экрана, працягваецца ўжо некаторы час. Мэт Маркіз выдатна падсумоўвае ўсё ў сваім артыкуле "Стан спагадных малюнкаў".

Мы збіраемся выкарыстоўваць нашу шырыню экрана RESS для таго, каб падаваць розныя выявы ў розныя памеры экрана. Мы выкарыстоўваем выявы Flickr для нашай каруселі, і мы выбіраем тры памеры па змаўчанні: 320, 500, 640 і ствараем новы памер: 770, які з'яўляецца максімальным для нашай каруселі. Ёсць некаторыя адрозненні ў тым, наколькі шырокай будзе карусель у розных кропках прарыву, і мы спрабуем улічваць гэта ў алгарытме. Таксама звярніце ўвагу, што мы будзем падаваць малюнак, які крыху большы, чым тое, што мы збіраемся выкарыстоўваць. Гэта таму, што мы хочам, каб выява добра працавала і ў альбомным рэжыме. Калі ў нас шырыня экрана 320 пікселяў, вышыня альбо партрэтная шырыня складае 480, таму выява 500 лепш за ўсё падыходзіць для такой прылады (на аснове фарматаў Flickr). Тут ёсць месца для аптымізацыі, і вы можаце змяніць код і падаць больш дробныя выявы, калі хочаце. Вось код:

// выбраць правільную версію выявы
if ($ defaultWidth 320) {
// маленькія экраны атрымліваюць 320 малюнкаў
$ imageVersion = "320";
} інакш калі ($ defaultWidth 500) {
// 320-499 экранаў атрымліваюць 500
$ imageVersion = "500";
} інакш калі ($ defaultWidth = 1024) {
// экраны паміж 500 і 1024 атрымліваюць 640
$ imageVersion = "640";
} яшчэ {
// што-небудзь> = ​​1024 атрымаць 770
$ imageVersion = "770";
}

Цяпер мы прадставім нашы вылічэнні ў глабальнай зменнай RESS:

глабальны $ RESS;
$ RESS = масіў (
"width" => $ defaultWidth,
"imageVersion" => $ imageVersion);

І зараз мы можам лёгка атрымаць бок значэння і выкарыстоўваць гэта ў нашым кодзе.

? php echo $ RESS ["width"]?> var13 ->
? php echo $ RESS ["imageVersion"]?> var13 ->

09. Карусель

Добра, у нас усё наладжана і мы гатовы пачаць яго выкарыстоўваць. Для таго, каб размясціць карусель на сайце, мы будзем выкарыстоўваць swipe.js, і нам таксама патрэбны Modernizr, каб ведаць, ці варта нам уключаць пераходы CSS ці не. Акрамя таго, мы паспрабуем выбраць правільную версію малюнка для прылады. Мы выкарыстоўваем чатыры выявы, якія мы вырашылі, і захоўваем іх у нашай тэчцы img:

img1_320.webp
img1_500.webp
img1_640.webp
img1_770.webp

Зыходзячы з гэтага, зараз мы можам выкарыстоўваць нашу зменную RESS, каб выбраць правільную версію:

img src = "img / img1_? php echo $ RESS [" imageVersion "]?>. jpg" alt = "Першае малюнак">

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

10. Рэклама

Адна з праблем рэкламных сетак заключаецца ў тым, што большасць з іх прадастаўляюць толькі аб'явы фіксаванага памеру. Мы збіраемся ўключыць гэтыя аб'явы фіксаванага памеру на наш адаптыўны сайт, але мы выкарыстоўваем RESS для ўключэння розных памераў у залежнасці ад памеру экрана, з якім мы маем справу. Мы збіраемся выкарыстоўваць Google AdSense, і мы размесцім рэкламу ў загалоўку старонкі побач з лагатыпам. Мы выкарыстоўваем тую ж тэхніку, што і пры падачы розных версій малюнкаў. У нас будзе рэклама ў 320 пікселяў над лагатыпам на маленькіх экранах, большая ў 468 пікселяў справа ў лагатыпе на сярэдніх экранах і, нарэшце, вялікая рэклама ў 728 пікселяў у правай частцы лагатыпа для вялікіх экранаў. Вось код:

? php
if ($ RESS ["width"]> = 320 && $ RESS ["width"] = 640) {
?> var13 ->
div>
? php уключае "фрагменты / аб'явы / 320.php"?>
/ div>
? php
}?>

div id = "сайт-лагатып">
a href = "/ ress /"> RESS / a>
/ div>

div>
? php
калі ($ RESS ["шырыня"]> = 980) {
?> var13 ->
div>
? php уключае "фрагменты / аб'явы / 728.php"?>
/ div>
? php
} інакш калі ($ RESS ["шырыня"]> = 768) {
?> var13 ->
div>
? php уключае "фрагменты / аб'явы / 468.php"?>
/ div>
? php
}
?> var13 ->
/ div>

Звярніце ўвагу, што ў нас ёсць медыя-запыт, які схавае рэкламу, калі рэклама апынецца ніжэй зададзенай шырыні. Рэклама бачная па змаўчанні, і мы хаваем яе для памераў экрана менш за 980 пікселяў, іншымі словамі, максімум 979 пікселяў. Рэклама схавана, калі шырыня прылады памяншаецца без перазагрузкі, але пры перазагрузцы старонкі вы атрымаеце іншы памер аб'явы.

экран @media і (максімальная шырыня: 979 пікселяў) {
.max-980 {
дысплей: няма! важна;
}
}

Схаванне змесціва без дысплея звычайна з'яўляецца вялікім "не-не", але памятайце, што яно хаваецца толькі ў тым выпадку, калі памер экрана рэзка змяняецца, і толькі аператыўныя распрацоўшчыкі вэб-дызайну мяняюць акно аглядальніка на любым сайце, які яны бачаць ...

11. Умоўнае ўключэнне зместу

Як вы ўжо разумееце, мы можам лёгка напісаць умоўны код на серверы і зрабіць шмат брудных спраў ... Адна рэч - гэта выдаленне змесціва для меншых экранаў. Некаторыя тыпы кантэнту проста не вартыя выдаткаў на мабільныя прылады, напрыклад віджэты ў сацыяльных сетках. Мы можам паспрачацца аб выдаленні іх усіх разам з нашага сайта (напэўна, трэба). Вось код для правай калонкі нашай старонкі:

? php уключае "фрагменты / archive.php"?>
? php if ($ RESS ["width"]> = 768) {?> var13 ->
div>
h2> Сацыяльная / h2>
? php ўключае "фрагменты / twitter-search.php"?>
? php ўключае "фрагменты / facebook.php"?>
/ div>
? php}?>

Такім чынам, мы ўключаем гэтыя фрагменты толькі ў тым выпадку, калі экран складае 768 пікселяў і больш. Наладжванне логікі на такім правіле азначае, што мы робім крок з цалкам рэагуючага свету, каб дасягнуць павышэння прадукцыйнасці на мабільным тэлефоне. Такія прылады, як Kindle Fire, які мае экран 600x1024px, не будуць загружаць фрагменты Twitter і Facebook у партрэтным рэжыме, але яны будуць загружаць іх у альбомным рэжыме. Дзіўныя рэчы, як гэта, здараюцца, але гэта цана, якую мы павінны заплаціць. На шчасце, ёсць рашэнне, якое называецца паступовым удасканаленнем. Калі экран зноў стане шырэй, павінна быць лёгка загрузіць адсутны змест. Зноў жа, вам варта добра падумаць над гэтым, бо гэта, верагодна, збянтэжыць вашага карыстальніка, але чытайце далей і глядзіце на павышэнне прадукцыйнасці гэтай тэхнікі.

У цяперашні час мы выкарыстоўваем шырыню экрана для ўсіх нашых рашэнняў, але мы маглі б гэтак жа выкарыстоўваць і іншыя магчымасці, такія як новы API сеткавай інфармацыі.

12. Прадукцыйнасць

Такім чынам, як наш падыход уплывае на прадукцыйнасць сайта? Вось некалькі тэстаў з трох розных кропак спынення, назавем іх: Вялікі, Сярэдні і Маленькі. (Звярніце ўвагу, што код на дэма-сайце не зведзены да мінімуму, каб палегчыць яго чытанне і адладку):

  • Вялікі: 84 запыты, 696 КБ перададзена | 2-6 с (загрузка: 1-3 с, DOMContentLoaded: 600 мс-3 с).
  • Сярэдні: 84 запыты, 685 КБ перададзена | 2-6 с (загрузка: 1-3 с, DOMContentLoaded: 600 мс-3 с).
  • Маленькі: 25 запытаў, 221 КБ перададзена | 560 мс (загрузка: 580 мс, загрузка DOMContent: 320 мс).

Такім чынам, вялікі сайт у тры разы перавышае невялікі, як па памеры, так і па колькасці запытаў! Розніца ў памеры выявы ад трох выяваў у 500 пікселяў да большага ў 770 пікселяў складае 60 КБ. Такім чынам, менавіта віджэты ў сацыяльных сетках робяць сайт вялікім, а не выявы. Але сам памер тут не адзіная праблема, колькасць падключэнняў таксама клапотна, і яны ідуць толькі з сацыяльных фішак. Выявы таксама значна аптымізаваны ў параўнанні з першапачатковай версіяй пры дапамозе Photoshop і ImageOptim.

13.Заключэнне

Цяпер у нас ёсць асноўная ўстаноўка RESS, і гэта павінна быць лёгка ўключыць у ваш бягучы сайт ці нават у PHP CMS, напрыклад Wordpress ці Drupal. Тэхніка можа супярэчыць некаторым рэчам, якія вы даведаліся ў сваім класе RWD, але ў многіх выпадках значна больш эфектыўна (як для вас, так і для аглядальніка) размясціць логіку на серверы. Я таксама выявіў, што гэта дае большую гнуткасць, паколькі вы можаце дадаваць і выдаляць змесціва для пэўных прылад, і вы можаце выкарыстоўваць іншыя рашэнні, якія не падыходзяць для мабільных прылад, паказваючы альтэрнатыўныя рашэнні на маленькіх экранах.

Прагрэсіўнае паляпшэнне з'яўляецца цэнтральнай часткай адаптыўнага вэб-дызайну, і яго таксама можна выкарыстоўваць разам з RESS і натуральным пашырэннем нашай дэманстрацыі ўключэння кантэнту - уключэнне змесціва ў JavaScript пры павелічэнні памеру экрана. Вы таксама павінны ведаць, што зараз мы абслугоўваем некалькі іншы змест па адным і тым жа URL-адрасе і што гэта можа паўплываць на ваш кэш. Ёсць рашэнні, як вырашыць гэтую праблему, але гэта недаступна для гэтага ўрока.

14. Далейшае чытанне

Вы таксама можаце азнаёміцца ​​з іншымі працамі па RESS: Дэтэктар Дэйва Олсэна і адаптацыяй прэзентацыі: Чаму адаптыўны дызайн на самай справе пачынаецца на серверы ад Yiibu, а таксама арыгінальным артыкулам RESS ад Люка Урублеўскага.

Андэрс Андэрсэн Андэрсэн - andmag.se - жыве, працуе і грае ў Стакгольме, Швецыя. Ён займаецца распрацоўкай мабільных прылад з часоў WML і ў цяперашні час спрабуе прымусіць гэту "спагадную рэч" працаваць лепш для мабільных прылад. Даганяйце Андэрса ў Twitter як @andmag.

Спадабалася гэта? Прачытайце гэтыя!

  • Бліскучы выбар падручніка па Wordpress
  • Нашы любімыя вэб-шрыфты - і яны не каштуюць ні капейкі
  • Даведайцеся, што чакае дапоўненая рэальнасць
Абавязкова Паглядзець
13 галерэй вэб-сайтаў, якія натхняюць ваш дызайн
Чытаць

13 галерэй вэб-сайтаў, якія натхняюць ваш дызайн

Галерэі вэб-сайтаў, яны ж C галерэі: яны з'яўляюцца выдатнай крыніцай ідэй, а таксама падтрымліваюць нас у курсе апошніх тэндэнцый вэб-дызайну. У нас ва ўсіх ёсць свая галерэя вэб-дызайну для хутк...
Лепшыя прапановы Apple Watch SE: самыя нізкія цэны, даступныя ў маі 2021 года
Чытаць

Лепшыя прапановы Apple Watch SE: самыя нізкія цэны, даступныя ў маі 2021 года

Apple Watch E быў выпушчаны толькі ў верасні 2020 года, але ўжо было мноства выдатных прапаноў, якія, на нашу думку, з'яўляюцца ідэальным варыянтам Apple Watch для крэатываў.Для гэтага ёсць некаль...
Лепшыя прайгравальнікі кружэлак
Чытаць

Лепшыя прайгравальнікі кружэлак

Вялікая частка атрымання аднаго з лепшых плэераў і збору прывабнасці вініла заключаецца ў зборы і дэманстрацыі вашых любімых альбомаў у вялікай фізічнай форме, але сапраўдная прычына таго, што вы паві...