CipbeardS4@7,theContor tet];
[theContent setFont:[UIFont systemFontOfSize:
Ee efutFontSizell
[thecontent sete");
IeheContentsetText:mpsting:
UiMarkupTextrintFormatter *himiFormatter
= [{UIMarkupTextPrintFormatter alloc) initwth
Ta ariapest:theMarap};
TniFormatterstertPae = 0;
htmlFormatter.contentinsets = UIEdgelnsetsMiake
(720, 720, 720, 720);
Peprntormatier = RmFormater;
= (BAeion)seres(@sender{
iActionSheet *popupQuery = [[UtActionsheet alloc]
InturthTie:nildelegate:sefcanceButtonTie:NS
LocalizedString(@"CANCEL', ni. destructiveButtonTl
pe showsPageRange = YES;
‘old ("completionHiancler(UlPrintintraction
Controle *, BOL, NSE ror
‘(UlPinkinteractonControllr *printControlle,
nil otherButtonTes:NSLocalizedString(@"COPY", ni), 8001 completed, NSEiror Yer) {
NSLocalizedstring(@"EMAIL', ni), NSLocaizedString i (eompeted 88 ero) {
BACKGROUND —_(@"PRUNT, ni), NSLocaizedStng(@”FACEBOOK”, ni) UrAlertview "letview = ([UAlerview aoe it
MODES APPLE NStocalzedString(@"TWITTERY, nl), NSlocalizedString _—_‘WithTitle:@Cpboard” message:NSLocalzedString(@
Selavostaapp necesita des (@°S4S" i, "PRINTERRORY, nil) delegate:nlcencelButonTiteil
sereatiaancequnda site __[ponupQuary shoninven:s. ven) terButonTies: 6°01 nil],
Inbackgrund (perreaperre
datio ato) potter
~Taertview son
ihe acoA EERE
ee todd Sttge atoning ( [ne resentnimatdES conplaontnd
Soe eee crate
cotficaatuatnent | exes Y
‘Conceptual PhoneOSProgram- If copy to pesteboard = ee a
mingle Rachnoundinece: UlPesteboard *pb = [UIPesteboerd general (vod) sendEmaiiContent {
‘senfacerndimcation ad Pasteboard]; if ({MFMallComposeViewController canSendMail]) {
pb setting theontort text MFMalComposeViewControler *mallr = ([MFMall
‘CompeseviewConvole tos nt
‘ater malComposeDeesate = calf
[male setSubjec:0"Olpboor)
NSStrng “emalBody = theContent.est;
[tale seesogetodyemalBody THAN];
[sel presentvienControler:maler animated
__¥ES completion;
Yee
UiAlerView alert = [{UIAlertView alle) itwth
‘Tale:O"Cipboard message:NSLocalzedString(@
“MAILERROR’ ni) delegae:nilcancelButonTite
OK" otherButonTes: i);
ie eo 7 ror
brea d
cs i
(st ST — ld atrperCaniar aEapSF
a Conor }onlr dhe arent
aac Tene err ero {
ea ~ Tig aee= .
Y saa et)
¥ 4
“od promo rx a PCa
Utara = (UPcin elesnge = NloaletS aA.
Cnn aretha SUES
P16 / ioP:ogrammo
hutps/wwo-toprogramme.t(@°Cipboard” message:theMessage delegate:
__icancelttonie: OK" atheros: i
[alet show:
1] Remove th all ew eae
[caf dsmssvienConroervimated'Y completion
'NSSring "twee
i ({SLComposeViewConcletAvatableForService
“TypesSLservceTypeTter)
*theContent.ter length > 140) (
‘tweet = [[NSSting aloe] itithFornat:@"%
/theContenttoxtsubstringTolndex: MIN(137,
+ Ihecontent.text length
Yee
tweet « [[NSString alloc] initWithFormat:
@°560" theconteeet
‘SLComposeViewController *tweetSheet = [St
__Composevencontroler
‘eamposevienControler
ForServctype:SLServceTypeTtzer
[veetShee senate;
{self presentviewControlier:tweetSheet
nimates ES completion),
‘f{[SLComposeViewControlierisAvallableFor
‘Servetype:SLServieTypeFocebook) {
‘SLComposeViewControlr controler =
[stComposeviewControler composeViewContoler
ake ForServiceype:SiServenTypereebook)
[conor setiiteText:theContettxt;
{controler adeURL:[WSURL URLhString
ip yferetepp com
{self presentviewController:controller
animated: YES completion];
>
+ (void messageComposeViewControlier:(MF¥essage
‘ComposeViewControler *}controllerdiinishvith
Resu(MessapeComposeResut) rut
hetp://www toprogrammo.t
IntwithTie:NSLocalzedString(@"SMSERRORY, nil)
message:tSLocalizdStiing(@"SMSERRORTEXT,
nil) delegate:nilcancoleuttonTite:
2°OK" otherutoniesn};
weak
>
[al disvenContlernimatsES completion
> -
(sen
UIAlertviw *werningAert = [[UIAlrtView alloc)
intwrenTe:NSLocalzedString(@"SHSERRORY, cil)
message: NSLocalizedstring(@"SHSERRORTEXT, al)
delegate cnceButone: 00K" theron
IoaringAert show};
>
[NSString *message = theContent
"NMessageComposeViewControer *ressageContol
{1hFessogeComposevienControler ac) nt);
messageConroler messageCamposeDeesee = se
rmessogeContoter setouy message;
‘messageController.navigatlon6.tint Coo
iri magn vos arto exon
preservenconrlrmessgeConoler ate:
Yes compton:
»
‘end
Come potete vedere abbiamo messo a disposizione
delutente diversi modi di condividere i proprio ap-
punto, compresa la possbilita di ricopiarto nella clipbo-
ard, applicazione @ abbastanza smart’ da non salvare
due volte Io stesso co ntenuto, quind! non incorrere-
‘mo in duplicat. La nostra piccola applicazione 8 ora
completa: se lanciata su device divers, prowveder al
download dei date alla sincronizzazione con il vostro
‘account iCloud!
La storyboard & composta come in figura. Ricordiamo
‘che il codice completo & disponibile nel CD di loPro-
‘orammo.
TOUCHID
‘Andiamo a implementare la protezione delf'applicazio
re tramite Touch ID,
Touch 1D @ il nome depositato dalla Apple Inc. peri
lettore dl impronte digital presente nel tasto Home o
nella Touch Bar del seguenti modell
TOUCH ID
letarecimpront dig
‘Apple stato presenta nl
2013 can iPhone. aaa &
‘moat su tt deve mbit
del acens Cupertino, men-
tree dpa er achook
Progal2nis.
ioProgrammo / 17 >COVER STORY cma)
18 / ioProarammo
‘+ IPhone 5s iPhone 6, iPhone 6 Plus iPhone 6, IPhone
65 Plus, IPhone SE, Phone 7, Phone 7 Plus
+ iPad Air2, Pad mini 4, Pad Pro
‘+ MacBook Pro 2016
Ecomposto da due part principal quella centrale nella,
quale é posto rlevatore delle impronte, rvestitain ve-
‘tozaffro eun anelloin accialoinossidabile che rilevala
presenza del dito, Le impronte sono usate per sblocca-
rel dispositivo semplicemente appoggiando i dito sul
taste home e per acquis in App Store e Tunes Store. €
possibile memorizzare nel dispositivo un massimo dS
impronte, che potranno essere utilzzate per svolgere le
_azioni sopra citate. Touch ID @ dotato di un sensore che
scatta una foto ad alta risoluzione delfimpronta digita-
le delfutente, la analiza ed & in grado di riconoscerla
{da qualsiasi angolazione, Ce chi ha sollevato it pro-
bilema della privacy, owiamente, ma Apple ha tenuto
subito a precisare che le Informazioni sono archiviate
€ crittografate in manierasicuaallinterno del chip del
device. I dati restano nel device enon sono trasfertiad
‘Apple in alcun modo. Apple ha confermato anche che
Touch ID ha difficolt a riconoscere dita sudate, bagna-
FigcLastorbard compete dela otra apple
‘t@.econ cicatrciTorniamo ora alla nostra app... Come
funaionera? Appena awiata Vapplicazione ci chiederd
dlautenticarc, se fautenticazione flisce non potremo
andare oltre. Registrate quindlalcune impronte nel vo-
stro device se ancora non lavete fatto,
IMPLEMENTIAMO
L'AUTENTICAZIONE
CON TOUCH ID
[Andremo a implementare un nuovo UIViewController
nella nostra applicazione,che sara vsualizzato prima di
‘ogni tra schermata.In questa nuova schermata csar8
tun bottone ‘Accedt” che scatenera evento di autent-
‘azione, Se saremo autenticatiallora procederemo a
visuallzzae la schermata principale dellapp, altimenti
Fig. S:La nostra applicazionesinconazautomaticament tra
deve divest
riceveremo un messaggto dl ertore e rimarremo nella
schermata, dove non potremo visuaizzare nulla.
Detto questo cominciamo con il modificare la storybo-
ard della nostra app, inserendo un nuovo UlViewCon-
troller, ssoclato alla classe TouchldConttoller. Inse-
riamola prima del TableViewControllere dlamo il nome
“authenticated alla relazione tra i due ViewControler.
Inseriamo un bottone che ci permetteré di autenticar
ial centro della schermata. II bottone fard scattare la
richiesta di autentcazione,e se limpronta sara ricono-
scluta vera visualizata la lista dl appunt savatl. Co-
‘minclamo con Yanalizzare la parte che gestisce fauten-
ticazione delf utente tramite impronta digitale. I primo
'passo @ Includerelalbreria per fautenticazione locale
tramite touch id. Sottolineo “locale | dati dellimpron-
ta sono sul device e non vengono inviati ad Apple per
‘moti i sicurezza,
‘import
‘Adesso cl occuperemo di gestire Il click sul bottone da
parte delfutente con una BAction associat al bottone
nella Storyboard
Action)promotauteriaton(sender {
AConteet Fant = (LAContext alle] int
a
if (context canEvaluatePoicy:LAPoleyDeviceOwner
‘AuthenticatlentithBiometreserror:Berror)) {
Iniializiamo il “local authentication context” che
ppermettera di verifiare se il device dell utente suppor
ta Touch ID. Lif che vedete qui sopra, se verificato, pro-
cedera allautentcazione.
[cote eater LAPaiDeve me
Adherent
leaiedRenson:@7Ae youthe device ome”
rep "(BOO sures, NSETor "=o {
it (error) {_
Utaleriew alert = ((UAtiCloudeTouch'D \ covERSTORY
NSLog(@"Aeressogarantio"
Aspatch_asyne(lspatcn_get_
rain_queuel),
[sel performsequeWent
ener: @"authentated senders
UiAlertview "alert = [[UIAlr
ew aoe) iteTe:0Eroe”
message: @"La tua impronta
on 8 regata™
Fig iteration con cipboard
{ater shows
y
1 device delfutente non supporta Touch ID. Lo segna-
llamo.
Ritorniamo invece al caso in cui utente riesca ad au-
tenticars:
‘therButtonTiless
[alert show}; I (success) ¢
> TNSLo9(@”Accsso garantito"
vi SCEGLI IL CMS
GIUSTO
ECOMMERCE? BLOG? SCEGLI LA PIATTAFORMA
PIU ADATTA ALLE TUE NECESSITA
[CMs (Content Management System) hanno rivoluzionato il modo
ci creare contenuti sul Web mettendo a disposizione di un vasto
bacino di utenza strument intutivi per allestire negozi ecommerce,
sit aziendalt, blog e qualsias altro progetto destinato ad approdare
sul Web. Svluppate salitamente con illinguaggio di programmazione
PHP, le piattaforme disponibili online sono ormai numerose, I che
ud confondere chi si avvicina per a prima volta a questo mondo.
Le pit utlizzate sono tuttavia einque, che ti presentiamo sintetica-
‘mente nell prossime righe: WordPress, Drupal, Joomla, Prestashop
eWooCommerce (quest ultimo @in reat un plugin. primi tre della
lista sono le colonne portant del ecosistema CMS in particolar modo
WordPress @ la soluzione pit abbordabile che vanta per questo il
‘maggior numero di siti presenti online rispetto agli altri CMS) ed offre
un ricco database di plugin e tem Drupal e Joomla sono meno intu-
Itivi ma consentono di create complessi progett rvelandosl quindt
Ideal per utenti avanzati
Chi vuole invece aprire un site ecommerce non pud ignorare
WooCommerce (plugin di WordPress) e Prestashop, entrambl sup-
pportati da ative community e moltepliciestensioiin grado diimple-
‘mentare ineditefunzionalit. Insomma, il mondo dei CMS offe solu-
PROMO
Hostingsolutions
Silver Linux + CMS
www.hostingsolutions.it
Attiva subito la promozione
Silver Linux + CMS
‘Solo’ etor dale vise Edzion’Mastr possono usufure dela speciale
promazione Hosting Soutos: i paccetto hosing Sver Linux + CMS
Preinstallato pronto al'uso (WordPress, Drupal, Joomla, Prestashop,
‘WordPress+NooCommerce) sara offeto gratuitamente per 12 mes a
‘solo costo del dominio, Uno sconio dawero vantaggisol
Puoi approfitare subto daoterta vsttando it link ftps:
fe (era See
la poceda ot inleaate doorine cic pomaaal SLIM
‘SPDOM. coda che i cocice pub essere utizato solo una volta ed &
valid fino al 31/12/2017.
Zion adatte a chiunque, Ora non resta che trovare un piano hosting
‘conveniente e performante, come Silver Linux di Hosting Solutions
ordinabile con il CMS che desideri gia installato e pronto alluso!
Consulta apposito box per ulterior informazioni
Scegliere un CMS
Tae
a ES
erie ‘peo det on ern pt ng
worse | soonat | Buea | wecCammece | Pesastop
@ x S| comme | resistor
oom | comme | omer | oer | oe
Accedi alla dashboard
ya
Vista Pniizzohitps:/wwvwhostingsolaionst/promarionelsiver
linwcems.asp @ ceca sul bottone Yordina subito” in corispon-
donza del CMS che desir utlizare (nel nostro caso WordPress.
pacchetto iver Linux pub essere associto sia ad un nuovo dominio
‘choad un gi esistonto. Sogo etnzioni por complotare ordi.
20 / ioProgramm:
Una volta chellservziosardattvo, riceveral una em:
ferma con i dati necessari per utlizzare Silver Linux, inclu
ii nome utente e a password. April link hit//"nomevostrosiio’/
\wp-loginohp ed Inserisol le credenziall per accedere alla da-
‘shboard WordPress.
beeps Joprogrammo.i|
Seleziona un tema
Aggiungi Tema ‘cirkaien
La dashboard 6 il menu principale di WordPress dove puol
raggiungere faciente tutte le sotto sezioni del CMS. Sogui
i percorso “Aspetto, Temi, Aggiungi nuovo” per visionare tutti
i tomi predefinit installa, corcarne di nuov online (gratis ed a
agamento) ed efettuame linstallazione in pochi clic.
Crea una nuova pagina
Pen
Aggiungere un plugin
Aggiungi plugin eileen
bbPress
Jetpack by
WordPress.com
Nol menu laterale dolla dashboard trovi anche il collega-
‘mento alla sezione Plugin, componenti aggluntv in grado
‘ aggiungere nuove funzionalita alla plattaforma. Per procede-
re allinstallaione clicca su Plugin, Aggiungi nuove e segui le
Istruzion~ come por i tamplate
Il primo articolo
Taguig nu pene
raprgmucrarcae
Le pagine sono elament utiizat per artoolare I portale in pit
sezion (e: la pagina “chi siamo" serve a presontare 'autor/
‘uratore del sito). Clcoa su Pagine, Aggiungl nuove per awiame
la reazione, Noterai che interfaccia ® simile a quella dl un classico
‘dito test I tasto “Publica” rendora visible atta pagina
ntp//ww loprogrammo.it
ii articoli che ti apprest a realizzare cliccando su Articol,
‘Aggiungl Nuovo si appoggiano alla stessa interfaccia che |
hal imparato a conoscere nel passo precedente. Ricorda che
se non vuoi pubblicare subito articolo puol cliccare complice-
mente su “Salva Bozza”.
mmo / 21E-COMMERCE,
PRIMI SU GOOGLE
QUANTO E IMPORTANTE FARSI TROVARE? INUTILE RISPONDERE! | NOSTRI ESPERTI Cl SPIEGANO COME
POSIZIONARE IL SITO REALIZZATO CON PRESTASHOP NELLE PRIME PAGINE DE! MOTOR! DI RICERCA,
bbiamo affontato pi volte questa tematicara, data
Timportanza, @ bene tomar. Samo parando ot
Shop uno sttumento che consented cea i
‘Proprio negozio online e vendereattraverso iWeb. Si trata,
dun sto che ha centinala di funionalit, moto semplice
op
Gees)
REGOLE SEO:
LATOP 10
Per ottenere
una buona
ottimizzazione
on-site bisogna
seguirele
regole che
riportiamo in
questo schema,
da applicare
alla scheda dei
dda utlizzare, Undlizz0 a cul collegarst & hnpsy/www.
prestshopconvt Il sistema di funzionamento & semplice
ed ériportato sul sto ufc Ecco perch, in questa guida,
ciconcentrerem sulle principal egole SEO da serquie per
agevolare una maggioreindczzazione,
22 / ioProgrammo
hetpu/www-loprogrammo.tPOCHEE SEMPLICI REGOLE
Nello specco in questa approfondimento, impareremo
2 Inserre un nuovo artcoo,associare ad esso il prezzo
fed eventuali sconti, descrivere le carattristche
principal e tanto altro, Durante la compllazione delle
Schede prodotto & fondamentale seguire le regole SEO
per ottimizarle al fine di ottenere un aumento della
isiblita dei prodotti insert nel motor dl ccercae, dl
conseguenza,ottenere un maggiore trafic. La creazione
diuno shop deve essere ideata pensando prima di tutto
al SEO che @ alla base di qualsiasi progetto. € un etrore
‘molto grave pensare che sia necessrioultimare subito
‘Un sto per pubblicrlo online imandandso in un secondo
‘momento faspetto SEO. Ogni azione pela crezziqne di
‘un negozio PrestaShop si ilette sul ricerca naturale.
Diseguito andeemo.a conoscer alcuni deg aspett della
struttura del sito e-commerce che possono glocare un
‘uolo importante sul SEO. :
Hee) PRU Mc WU tty
Meee een eee res ds)
eee
ncanti Google premia i
1 SCHEDA
INFORMAZIONI
Ceiamo uno nuovo prodotto ciccando
su Aggiungi nuovo prodotto in altoa
destra della pagina. Successivarente,
Visualizzeremo la Scheda informazioni
daccompilae ela struttura dela nostra
SCHEDA PREZZO
‘Spostiamoci nella scheda Prezzi per
impostare il Prezzo di acquisto el Prezzo
di vendita del prodotto tasse incluse 0
escluse. Il prezzo di vendita finale verra
calcolato in automatico elo troveremo
sempre in basso, in fondo alla lista.
IMPOSTIAMO
LA TASSAZIONE
[Nel caso in cui deciamo insert i prezzo
tase incluse, dovremmo specificare i
Regime fiscale ad esempio
ITStandard Rate 22% per indicaretva al
226) nel'apposito campo:
automatico
scheda prodotto, caratterizzata da un ‘sistema calcolra il prezzo di vendita
‘menu lateral snistro, tase inluse
unseen — =
Secret E 7 rent [nego [> | vee
tt x
PREZZI SPECIFIC! GESTIONE SCONTI PRIORITA DEL PREZZO
'Attenzione: per creare un prezzo ‘Se desideriamo che nella scheda del Possiamo defini regole di prezzo
spedfico dobbiamo salvare prima i nostro prodotto sia vsualizataurvicona diverse in base a ruppi di utenti. prio-
prodotto.Clcchiamo su Aggiungiun _—_cheindichiunfoferta disaldo, @suffciente rita ci permettono di sceglere quel éla
prezzo specifco e definiamo i prezi per
cient appartenenti a gruppidiversi.tile
per gestre eventual conti.
hutp//wwe-toprogramme.t
spuntarela checkbox Mostra Ficona “in
saldo’ nella pagina del prodotto ei testo
nel istino prodott
principale tra Negozo, Vauta, Nazione,
Gruppo. a regola vale slo peril prodotto
correte senon viene spuntatala voce
“Applica atuttii prodotti”.
loProgremmo / 23