{"id":215407,"date":"2014-03-14T14:28:04","date_gmt":"2014-03-14T10:28:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=215407"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=215407","title":{"rendered":"<span class=\"post_title\">\u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0427\u0430\u0441\u0442\u044c 1: Adobe Phonegap + AngularJS<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/cf8\/141\/fde\/cf8141fdebe6d5e8d495e79b46fffd53.png\" align=\"left\"\/>\u041a\u0430\u0436\u0434\u044b\u0439, \u043a\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0441\u044f \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439 (-\u0430\u043c\u0438), \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u044d\u0442\u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u044e\u0431\u044f\u0442 \u043a\u043e\u043c\u043f\u043b\u0438\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441. \u0410 \u0443 \u043d\u0430\u0441, \u043c\u0443\u0436\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0417\u0435\u043c\u043b\u044f, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435. \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u043e \u043d\u0430\u0441 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <s>\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e<\/s> \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u043b\u0438\u043c\u0435\u043d\u0442\u043e\u0432\u2026 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e, \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043d\u0430 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d.<br \/>  \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0446\u0435\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 (\u043a\u043e\u043d\u0446\u0435\u043f\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f), \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0445 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0437\u0431\u0440\u0430\u043b\u0438 (Phonegap + Ionic + Restangular + Phonegap Plugin Magic). \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u043a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c, \u0442\u0430\u043a \u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e.<br \/>  <a name=\"habracut\"><\/a><br \/>  <i><b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/b><\/i> \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043d\u0430 GitHub \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u043e\u0434\u0432\u0430\u043b\u0435 \u043f\u043e\u0441\u0442\u0430. <\/p>\n<h4>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h4>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e (\u043d\u0435\u0434\u0435\u043b\u044f), \u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0433\u043e (\u0434\u0430 \u0438 \u0432 AppStore \u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043f\u0430\u0434\u0435\u0448\u044c), \u0442\u043e \u0446\u0435\u043b\u044c \u0431\u044b\u043b\u0430 \u044f\u0441\u043d\u0430 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430: <b>\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/b>, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u043e\u0441\u044c \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0441\u0440\u0430\u0437\u0443 \u0438 \u043d\u0430 \u0432\u0441\u0451. \u0412\u044b\u0431\u0440\u0430\u043b\u0438 <b><a href=\"http:\/\/phonegap.com\/\">Phonegap<\/a><\/b>. \u0418, \u0440\u0430\u0437 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 HTML+JS+CSS, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043d\u0430 \u0432\u043e\u043e\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a. <b><a href=\"http:\/\/angularjs.org\/\">AngularJS<\/a><\/b> \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442. \u0421\u0430\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0443\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u0435\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u0431\u0443\u0434\u0435\u043c) \u2014 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c \u0431\u0443\u0434\u0435\u043c \u043f\u043e REST. \u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u2014 <b><a href=\"https:\/\/github.com\/mgonto\/restangular\">Restangular<\/a><\/b>.<\/p>\n<h4>\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 \u043d\u0430 Phonegap + AngularJS<\/h4>\n<p> (<a href=\"http:\/\/projectpoppycock.com\/angularjs-phonegap-and-angular-seed-lets-go\/\">\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a<\/a>)<br \/>  \u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 AngularJS. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"http:\/\/habrahabr.ru\/post\/200754\/\">\u0442\u0443\u0442<\/a>. \u041d\u043e \u0432 \u043d\u0438\u0445 \u043e\u0431\u044b\u0447\u043d\u043e, \u043a\u0430\u043a \u0432\u043e \u0441\u043d\u0435, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b: \u00ab\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u0430 NodeJS by Yeoman \u0441 \u0443\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c AngularJS \u2014 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 touch \u0438 gestures\u00bb \u0438 \u0442. \u0434. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430: \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u043f \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, windows 8) \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u043d\u0435\u0439 <a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/jdk7-downloads-1880260.html\">JDK<\/a>, <a href=\"https:\/\/code.google.com\/p\/tortoisegit\/wiki\/Download\">Git<\/a>, <a href=\"http:\/\/nodejs.org\/\">NodeJs <\/a>, <a href=\"http:\/\/www.python.org\/download\/releases\/3.3.4\/\">Python<\/a> \u0438 IDE (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, <a href=\"http:\/\/www.jetbrains.com\/idea\/\">IntelliJ IDEA 13<\/a>). \u0415\u0441\u043b\u0438 \u0447\u0435\u0433\u043e-\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442, \u0442\u043e \u043a\u0443\u043f\u0438\u0442\u0435 \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u2014 \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c.<\/p>\n<h5>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Phonegap CLI<\/h5>\n<p>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e NodeJS \u0432\u0441\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:  <\/p>\n<pre><code class=\"bash\">npm install -g phonegap <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Phonegap CLI \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438 (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>-g<\/code> \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438). \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043f\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0437\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 \u043d\u0435\u0435  <\/p>\n<pre><code class=\"bash\">cd D:\\workspace\\march8\\modules\\ <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Phonegap CLI:  <\/p>\n<pre><code class=\"bash\">phonegap create client com.somecompany.compliments Compliments <\/code><\/pre>\n<p>  , \u0433\u0434\u0435 <code>client<\/code> \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u0438\u0441\u043b\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Phonegap, <code>com.somecompany.compliments<\/code> \u2014 \u043f\u0430\u043a\u0435\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f <code>Activity<\/code>, \u0430 <code>Compliments<\/code> \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0423\u0440\u0430! \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 Phonegap. \u0421\u043e\u0431\u0435\u0440\u0435\u043c \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430 Android. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e Samsung Galaxy S III \u0438 Samsung Galaxy Tab 10.1) \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435:  <\/p>\n<pre><code class=\"bash\">cd client phonegap run android <\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f Android \u0432 \u043f\u0430\u043f\u043a\u0443 platforms, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a34\/2d3\/90a\/a342d390a1b08454298627d36ce7fe23.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u0442 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432:  <\/p>\n<pre><code class=\"bash\">del www\\spec.html rmdir \/s www\\spec del www\\img\\logo.png del www\\css\\index.css cd www rename index.html index-old.html <\/code><\/pre>\n<p>  <\/p>\n<h5>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c AngularJS \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443<\/h5>\n<p>  \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u043c <a href=\"http:\/\/projectpoppycock.com\/angularjs-phonegap-and-angular-seed-lets-go\/\">\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435<\/a>) \u2014 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c <a href=\"https:\/\/github.com\/angular\/angular-seed\">Angular Seed<\/a> \u2014 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u043c \u0435\u0433\u043e \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>modules<\/code>:  <\/p>\n<pre><code class=\"bash\">cd ..\/..\/ git clone https:\/\/github.com\/angular\/angular-seed.git <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e angular-seed. \u0412\u044b\u0442\u0430\u0449\u0438\u043c \u0438\u0437 \u043d\u0435\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0444\u0430\u0439\u043b\u044b:  <\/p>\n<pre><code class=\"bash\">copy angular-seed\\app\\js\\* client\\www\\js\\ copy angular-seed\\app\\css\\* client\\www\\css\\ xcopy angular-seed\\app\\lib client\\www\\lib\\ \/e xcopy angular-seed\\app\\partials client\\www\\partials\\ \/e copy angular-seed\\app\\index.html client\\www\\index.html <\/code><\/pre>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e <code>index.html<\/code> \u0432\u0441\u0442\u0430\u0432\u043a\u0430\u043c\u0438 \u0438\u0437 <code>index-old.html<\/code> (\u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0431\u043b\u043e\u043a\u043d\u043e\u0442\u043e\u043c):  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 index.html<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">&lt;!doctype html&gt; &lt;html lang=&quot;en&quot; ng-app=&quot;myApp&quot;&gt; &lt;head&gt;   &lt;meta charset=&quot;utf-8&quot;&gt;   &lt;title&gt;My AngularJS App&lt;\/title&gt;   &lt;link rel=&quot;stylesheet&quot; href=&quot;css\/app.css&quot;\/&gt; &lt;\/head&gt; &lt;body&gt;   &lt;ul class=&quot;menu&quot;&gt;     &lt;li&gt;&lt;a href=&quot;#\/view1&quot;&gt;view1&lt;\/a&gt;&lt;\/li&gt;     &lt;li&gt;&lt;a href=&quot;#\/view2&quot;&gt;view2&lt;\/a&gt;&lt;\/li&gt;   &lt;\/ul&gt;    &lt;div ng-view&gt;&lt;\/div&gt;    &lt;div&gt;Angular seed app: v&lt;span app-version&gt;&lt;\/span&gt;&lt;\/div&gt;    &lt;!-- In production use:   &lt;script src=&quot;\/\/ajax.googleapis.com\/ajax\/libs\/angularjs\/x.x.x\/angular.min.js&quot;&gt;&lt;\/script&gt;   --&gt;   &lt;script src=&quot;lib\/angular\/angular.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;lib\/angular\/angular-route.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/app.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/services.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/controllers.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/filters.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/directives.js&quot;&gt;&lt;\/script&gt; &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 index-old.html<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt; &lt;!--     Licensed to the Apache Software Foundation (ASF) under one     or more contributor license agreements.  See the NOTICE file     distributed with this work for additional information     regarding copyright ownership.  The ASF licenses this file     to you under the Apache License, Version 2.0 (the     &quot;License&quot;); you may not use this file except in compliance     with the License.  You may obtain a copy of the License at      http:\/\/www.apache.org\/licenses\/LICENSE-2.0      Unless required by applicable law or agreed to in writing,     software distributed under the License is distributed on an     &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY      KIND, either express or implied.  See the License for the     specific language governing permissions and limitations     under the License. --&gt; &lt;html&gt;     &lt;head&gt;         &lt;meta charset=&quot;utf-8&quot; \/&gt;         &lt;meta name=&quot;format-detection&quot; content=&quot;telephone=no&quot; \/&gt;         &lt;!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https:\/\/issues.apache.org\/jira\/browse\/CB-4323 --&gt;         &lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi&quot; \/&gt;         &lt;link rel=&quot;stylesheet&quot; type=&quot;text\/css&quot; href=&quot;css\/index.css&quot; \/&gt;         &lt;title&gt;Hello World&lt;\/title&gt;     &lt;\/head&gt;     &lt;body&gt;         &lt;div class=&quot;app&quot;&gt;             &lt;h1&gt;PhoneGap&lt;\/h1&gt;             &lt;div id=&quot;deviceready&quot; class=&quot;blink&quot;&gt;                 &lt;p class=&quot;event listening&quot;&gt;Connecting to Device&lt;\/p&gt;                 &lt;p class=&quot;event received&quot;&gt;Device is Ready&lt;\/p&gt;             &lt;\/div&gt;         &lt;\/div&gt;         &lt;script type=&quot;text\/javascript&quot; src=&quot;phonegap.js&quot;&gt;&lt;\/script&gt;         &lt;script type=&quot;text\/javascript&quot; src=&quot;js\/index.js&quot;&gt;&lt;\/script&gt;         &lt;script type=&quot;text\/javascript&quot;&gt;             app.initialize();         &lt;\/script&gt;     &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<ol>\n<li>\u0412\u044b\u0442\u0430\u0449\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <code>viewport<\/code> (\u0441\u0442\u0440\u043e\u043a\u0438 23-25):<br \/> \n<pre><code class=\"html\">&lt;meta name=&quot;format-detection&quot; content=&quot;telephone=no&quot; \/&gt; &lt;!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https:\/\/issues.apache.org\/jira\/browse\/CB-4323 --&gt; &lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi&quot; \/&gt; <\/code><\/pre>\n<p>  <\/li>\n<li>\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043c \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0438 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e\u0449\u0438\u0435 Phonegap:<br \/> \n<ul>\n<li>\u0441\u0442\u0440\u043e\u043a\u0438 37-38 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f AngularJS<\/li>\n<li>\u0441\u0442\u0440\u043e\u043a\u0438 39-41 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0442\u0435\u0433\u043e\u043c <code>&lt;\/body&gt;<\/code><\/li>\n<\/ul>\n<p>  <\/li>\n<\/ol>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b index.html<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">&lt;!doctype html&gt; &lt;html lang=&quot;en&quot; ng-app=&quot;myApp&quot;&gt; &lt;head&gt;   &lt;meta charset=&quot;utf-8&quot;&gt;   &lt;meta name=&quot;format-detection&quot; content=&quot;telephone=no&quot; \/&gt;   &lt;!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https:\/\/issues.apache.org\/jira\/browse\/CB-4323 --&gt;   &lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi&quot; \/&gt;   &lt;title&gt;My AngularJS App&lt;\/title&gt;   &lt;link rel=&quot;stylesheet&quot; href=&quot;css\/app.css&quot;\/&gt; &lt;\/head&gt; &lt;body&gt;   &lt;ul class=&quot;menu&quot;&gt;     &lt;li&gt;&lt;a href=&quot;#\/view1&quot;&gt;view1&lt;\/a&gt;&lt;\/li&gt;     &lt;li&gt;&lt;a href=&quot;#\/view2&quot;&gt;view2&lt;\/a&gt;&lt;\/li&gt;   &lt;\/ul&gt;    &lt;div ng-view&gt;&lt;\/div&gt;    &lt;div&gt;Angular seed app: v&lt;span app-version&gt;&lt;\/span&gt;&lt;\/div&gt;    &lt;script type=&quot;text\/javascript&quot; src=&quot;phonegap.js&quot;&gt;&lt;\/script&gt;   &lt;script type=&quot;text\/javascript&quot; src=&quot;js\/index.js&quot;&gt;&lt;\/script&gt;   &lt;!-- In production use:   &lt;script src=&quot;\/\/ajax.googleapis.com\/ajax\/libs\/angularjs\/x.x.x\/angular.min.js&quot;&gt;&lt;\/script&gt;   --&gt;   &lt;script src=&quot;lib\/angular\/angular.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;lib\/angular\/angular-route.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/app.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/services.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/controllers.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/filters.js&quot;&gt;&lt;\/script&gt;   &lt;script src=&quot;js\/directives.js&quot;&gt;&lt;\/script&gt;   &lt;script type=&quot;text\/javascript&quot;&gt;     app.initialize();   &lt;\/script&gt; &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0444\u0430\u0439\u043b <code>index-old.html<\/code> \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u2014 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0435\u0433\u043e:  <\/p>\n<pre><code class=\"bash\">del client\\www\\index-old.html <\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u043d\u0435\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 <code>index.js<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e Phonegap.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 index.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">\/*  * Licensed to the Apache Software Foundation (ASF) under one  * or more contributor license agreements.  See the NOTICE file  * distributed with this work for additional information  * regarding copyright ownership.  The ASF licenses this file  * to you under the Apache License, Version 2.0 (the  * &quot;License&quot;); you may not use this file except in compliance  * with the License.  You may obtain a copy of the License at  *  * http:\/\/www.apache.org\/licenses\/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing,  * software distributed under the License is distributed on an  * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  * KIND, either express or implied.  See the License for the  * specific language governing permissions and limitations  * under the License.  *\/ var app = {     \/\/ Application Constructor     initialize: function() {         this.bindEvents();     },     \/\/ Bind Event Listeners     \/\/     \/\/ Bind any events that are required on startup. Common events are:     \/\/ 'load', 'deviceready', 'offline', and 'online'.     bindEvents: function() {         document.addEventListener('deviceready', this.onDeviceReady, false);     },     \/\/ deviceready Event Handler     \/\/     \/\/ The scope of 'this' is the event. In order to call the 'receivedEvent'     \/\/ function, we must explicity call 'app.receivedEvent(...);'     onDeviceReady: function() {         app.receivedEvent('deviceready');     },     \/\/ Update DOM on a Received Event     receivedEvent: function(id) {         var parentElement = document.getElementById(id);         var listeningElement = parentElement.querySelector('.listening');         var receivedElement = parentElement.querySelector('.received');          listeningElement.setAttribute('style', 'display:none;');         receivedElement.setAttribute('style', 'display:block;');          console.log('Received Event: ' + id);     } }; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>receivedEvent<\/code> (\u0441\u0442\u0440\u043e\u043a\u0430 39 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435), \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:  <\/p>\n<pre><code class=\"javascript\">receivedEvent: function(id) { \tconsole.log('Received Event: ' + id); \tangular.bootstrap(document, [&quot;myApp&quot;]); } <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 index.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">\/*  * Licensed to the Apache Software Foundation (ASF) under one  * or more contributor license agreements.  See the NOTICE file  * distributed with this work for additional information  * regarding copyright ownership.  The ASF licenses this file  * to you under the Apache License, Version 2.0 (the  * &quot;License&quot;); you may not use this file except in compliance  * with the License.  You may obtain a copy of the License at  *  * http:\/\/www.apache.org\/licenses\/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing,  * software distributed under the License is distributed on an  * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  * KIND, either express or implied.  See the License for the  * specific language governing permissions and limitations  * under the License.  *\/ var app = {     \/\/ Application Constructor     initialize: function() {         this.bindEvents();     },     \/\/ Bind Event Listeners     \/\/     \/\/ Bind any events that are required on startup. Common events are:     \/\/ 'load', 'deviceready', 'offline', and 'online'.     bindEvents: function() {         document.addEventListener('deviceready', this.onDeviceReady, false);     },     \/\/ deviceready Event Handler     \/\/     \/\/ The scope of 'this' is the event. In order to call the 'receivedEvent'     \/\/ function, we must explicity call 'app.receivedEvent(...);'     onDeviceReady: function() {         app.receivedEvent('deviceready');     },     \/\/ Update DOM on a Received Event     receivedEvent: function(id) { \t\tconsole.log('Received Event: ' + id); \t\tangular.bootstrap(document, [&quot;myApp&quot;]); \t} }; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>\u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u043d\u0430\u0442\u044c<\/b>: \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Phonegap \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f AngularJS \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0437\u043e\u0432  <\/p>\n<pre><code class=\"javascript\">angular.bootstrap(document, [&quot;myApp&quot;]); <\/code><\/pre>\n<p>  , \u0442\u043e \u0432 <code>index.html<\/code> \u0443 \u0442\u0435\u0433\u0430 <code>&lt;html&gt;<\/code> \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>ng-app<\/code>, \u0438\u043d\u0430\u0447\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 AngularJS <a href=\"http:\/\/docs.angularjs.org\/error\/ng\/btstrpd?p0=document:39\">\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/a>.<\/p>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435! \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 Android \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u0421\u043d\u043e\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c:  <\/p>\n<pre><code class=\"bash\">cd client phonegap run android <\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/98e\/61a\/4be\/98e61a4be167ec07da54c72abdf5b558.png\"\/>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 <code>view<\/code> \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b. \u0414\u0430\u043b\u0435\u0435, \u043c\u0435\u043d\u044f\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 AngularJS \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0435\u0445. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435, \u0438 \u043a\u0430\u043a <a href=\"http:\/\/ionicframework.com\/\">Ionic Framework<\/a> \u043f\u043e\u043c\u043e\u0433 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<p>  <i>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/i><\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/h4>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Play Market: <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.waveaccess.compliments\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a><br \/>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 AppStore: \u043d\u0435 \u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2014 \u043f\u043e\u0431\u043e\u0440\u0435\u043c\u0441\u044f \u0437\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445!<br \/>  \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 GitHub: <a href=\"https:\/\/github.com\/mkanev\/compliments-client\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a> \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/215407\/\"> http:\/\/habrahabr.ru\/post\/215407\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/cf8\/141\/fde\/cf8141fdebe6d5e8d495e79b46fffd53.png\" align=\"left\"\/>\u041a\u0430\u0436\u0434\u044b\u0439, \u043a\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0441\u044f \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439 (-\u0430\u043c\u0438), \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u044d\u0442\u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u044e\u0431\u044f\u0442 \u043a\u043e\u043c\u043f\u043b\u0438\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441. \u0410 \u0443 \u043d\u0430\u0441, \u043c\u0443\u0436\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0417\u0435\u043c\u043b\u044f, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0441\u043b\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435. \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u043e \u043d\u0430\u0441 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <s>\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e<\/s> \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u043b\u0438\u043c\u0435\u043d\u0442\u043e\u0432\u2026 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e, \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043d\u0430 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d.<br \/>  \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0446\u0435\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 (\u043a\u043e\u043d\u0446\u0435\u043f\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f), \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0445 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0437\u0431\u0440\u0430\u043b\u0438 (Phonegap + Ionic + Restangular + Phonegap Plugin Magic). \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u043a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c, \u0442\u0430\u043a \u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-215407","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/215407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=215407"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/215407\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=215407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=215407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=215407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}