In qualità di Affiliato Amazon, iSpazio riceve una commissione dagli acquisti idonei senza alcun costo per voi. (info).
Se siete di Roma oppure se non siete troppo distanti, vi informiamo che dal 26 al 28 Maggio presso l’Apple Store in Via del Corso, si terrà una speciale sessione Today at Apple, dedicata completamente alla storie delle applicazioni italiane e di chi le ha create.
Advertising
L’iniziativa si chiama Apps for the Future e consiste in una serie di incontri gratuiti sul mondo delle app. Potrete incontrare gli sviluppatori di applicazioni più innovativi, conoscere la loro storia, parlare con i talenti dell’Apple Developer Academy ed esplorare il mondo dello sviluppo di applicazioni su iPhone ed iPad. Ecco il programma completo:
Venerdì 26 maggio, ore 18:00-19:00 “Spotlight”: Scopri il mondo della Apple Developer Academy
Nel weekend dedicato all’iniziativa “Apps for the Future”, Apple Via del Corso ospita alcuni ex studenti della Apple Developer Academy. Inaugurata nel 2016 in collaborazione con l’Università Federico II di Napoli, l’Academy fornisce agli aspiranti sviluppatori e sviluppatrici le basi per imparare a progettare, sviluppare e distribuire un’app. L’incontro è rivolto a tutte le persone che hanno la passione per il mondo del coding che avranno la possibilità di ascoltare l’esperienza di alcuni studenti, esplorare il processo creativo alla base di app come TruSteppy e Sunlitt e fare domande ai partecipanti.
Sabato 27 maggio, ore 11:00-12:30 “Lab app”: Video editing su Splice con Bending Spoons
Chiara Vivaldi, product manager di Bending Spoons, racconta la storia e i successi della startup italiana. Con sede a Milano, Bending Spoons è una delle aziende tecnologiche più all’avanguardia d’Europa. Nata nel 2013, ha servito quasi mezzo miliardo di persone in tutto il mondo, registrando 100 milioni di utenti. Nel corso dell’incontro si parlerà anche di Splice, app di video editing semplice e potente. Chiara mostrerà come fare un montaggio video su iPad usando la funzione chroma-key per scontornare le figure e inserirle su nuovi sfondi animati.
Sabato 27 maggio, ore 16:00-17:30 “Lab app”: Da un’idea al videogioco con redBit games
Massimo Guareschi, co-fondatore e CEO di redBit games, racconta il percorso di una delle più note software house indipendenti presenti in Italia. Fondata a Roma nel 2013, sviluppa giochi su piattaforme mobili ed è diventata famosa per Haunted Manor; con oltre 60 casual games alle spalle, nel 2015 ha fondato anche Tiny Games. Massimo Guareschi mostrerà come un’idea può diventare un videogioco. Partendo dal prodotto di punta di redBit, Jelly Juice, verrà realizzato con Procreate su iPad lo sketch di un personaggio, provando a elaborarlo fino al concept finale.
Domenica 28 maggio, ore 11:00-12:30 “Lab app”: Impara giocando con Smart Tales e Marshmallow Games
Cristina Angelillo, mamma e CEO di Marshmallow Games, racconterà questa innovativa realtà italiana che crea app interattive per bambini nel settore del gaming e dell’edutainment. In questa sessione, i partecipanti e le partecipanti potranno tuffarsi nell’affascinante mondo di Smart Tales esercitandosi con la matematica e le materie STEM su iPad e fogli di carta. Per finire, i lavori svolti verranno mostrati sul Video Wall.
Domenica 28 maggio, ore 16:00-17:30 “Spotlight”: App e benessere con 4books, Buddyfit e Serenis
La sessione conclusiva di “Apps for the Future” verrà moderata da Paolo Barberis di Nana Bianca. Il panel coinvolgerà in una chiacchierata aperta sul mondo delle app, soprattutto legate al benessere fisico e mentale, rappresentanti di 4books (una vera libreria di idee per la crescita personale, che seleziona i migliori libri internazionali, le news più rilevanti e crea podcast inediti di esperti in ambito business, attualità e varie competenze), Buddyfit (nata in Italia nel 2020, è un’app di fitness ideata per aiutare le persone a ritrovare il benessere. Con centinaia di corsi live ogni mese, fa raggiungere gli obiettivi di allenamento comodamente da casa) e Serenis (piattaforma digitale per il benessere mentale, con oltre 600 psicoterapeuti/e offre percorsi di supporto psicologico e psicoterapia online, ma anche servizi come counseling, coaching e journaling).
// Logica completa dello shortcode 'app'
function appstore_shortcode_logic($atts, $content = null) { // Attributi di default
$atts = shortcode_atts(array(
'id' => '',
'img' => '',
'nome' => '',
'sottotitolo' => '',
'prezzo' => '',
'link' => '',
'store' => 'App Store',
'template' => '',
'inapp' => '',
'background' => '',
'link_icon' => '',
), $atts, 'card');
// Verifica del valore dell'attributo 'stile'
$template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : '';
// Verifica se il file JSON della cache esiste
$cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/';
$cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json";
// Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco
$_app_id_check = sanitize_key($atts['id']);
$_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg";
$_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0
&& time() - filemtime($cache_file) < 31557600
&& file_exists($_img_main_path);
if ($_cache_valid) {
$json = file_get_contents($cache_file);
} else {
// Interroga l'API di App Store e scarica il JSON utilizzando cURL
$itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']);
$country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi
$json = '';
$data = [];
foreach ($country_list as $country) {
$itunes_api_url = $itunes_api_base . "&country=" . $country;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $itunes_api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$json = curl_exec($ch);
curl_close($ch);
$data = json_decode($json, true);
if (!empty($data['results'])) {
break; // abbiamo trovato un risultato valido, fermiamo il ciclo
}
}
if (isset($data['results'][0]['artworkUrl100'])) {
$original_image_url = $data['results'][0]['artworkUrl100'];
$new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url);
// Scarica e salva l'immagine dell'artwork sul tuo server
$image_id = sanitize_key($atts['id']);
$image_path = $cache_dir . "icon250_" . $image_id . ".jpg";
file_put_contents($image_path, file_get_contents($new_image_url));
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path);
// Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server
$data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg";
// Crea anche versione 140px per template mini (retina 2x per 70x70)
$icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg";
if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) {
$src_img = @imagecreatefromjpeg( $image_path );
if ( $src_img ) {
$dst_img = imagecreatetruecolor( 140, 140 );
imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) );
imagejpeg( $dst_img, $icon140_path, 85 );
imagedestroy( $src_img );
imagedestroy( $dst_img );
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path);
}
}
// Sostituisci anche gli URL delle prime 4 immagini degli screenshot
if (isset($data['results'][0]['screenshotUrls'])) {
$screenshotUrls = $data['results'][0]['screenshotUrls'];
$screenshotUrlsOnServer = array();
for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) {
$screenshotUrl = $screenshotUrls[$i];
$screenshotFilename = basename($screenshotUrl);
$screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg";
// Scarica e salva l'immagine dello screenshot sul tuo server
file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl));
if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath);
// Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server
$screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg";
}
// Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server
$data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer;
}
}
// Salva il JSON nella cache solo se non è vuoto
if (!empty($json)) {
file_put_contents($cache_file, json_encode($data));
}
}
// Decodifica il JSON
$data = json_decode($json, true);
// Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON
$nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store');
// Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON
$sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? '');
// Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON
$formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI'));
// Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON
$hide_image_class = '';
$card_body_style = '';
$container_style = '';
$container_extra_class = '';
if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') {
$img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg';
$container_extra_class = 'scontiamolo-mode';
} elseif (!empty($atts['img'])) {
$img = $atts['img'];
} else {
$img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png";
}
// Per template mini usa icon140 (70x70 retina) invece di icon250
if ( $template_class === 'mini' ) {
$img = str_replace( 'icon250_', 'icon140_', $img );
}
// Genera il link dell'app su App Store
$link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone";
$link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link;
// HTML immagine con o senza effetto rotazione (in base a template)
$img_html = '';
if (!empty($img)) {
if ($template_class === 'striscia') {
$img_html = '
';
} else {
$img_html = '
';
}
}
// Costruisci l'HTML finale
// Determina il contenuto del titolo in base al template
$title_content = '';
if ($template_class === 'blackfriday') {
$title_content = '
';
} else {
$title_content = esc_html($nome);
}
// offertediprimavera usa lo stesso layout CSS di blackfriday
$css_class = $template_class;
if ($template_class === 'offertediprimavera') {
$css_class = 'blackfriday offertediprimavera';
}
$output = '
';
return $output;
}
Sai che siamo anche su Telegram? Unisciti al nostro canale iSpazio per ricevere le notifiche oppure Apple Italia per chattare con altri utenti. Scopri i migliori prodotti Tech in sconto su Amazon con il nostro canale OFFERTE iSpazio.
Accedi per lasciare un commento:
0 Commenti