aprile 27, 2016 - No Comments!

Network e infrastrutture resilienti con il DevOps e la Continuous Delivery

Tutti dovrebbero sentire la responsabilità di portare miglioramento, nuove tecniche, prodotti e strumenti che guidano uno spirito innovativo in tutta l'azienda. Il nostro obiettivo non è solo sul "fare il lavoro", ma fare in modo che ognuno stia contribuendo in maniera significativa e coinvolgente all'interno del team.

devops XP

Su questo argomento che ci sta molto a cuore stiamo organizzando una nuova edizione di DevOps e Continuous Delivery. Una opportunità da non perdere per migliorare le tue skills.

Con questo corso imparerai a creare una deployment pipeline con Vagrant e Chef ed utilizzeremo Jenkins come server di Continuous Integration. Costruiremo in modo automatico un intero stack infrastrutturale in cloud con AWS, Packer e Terraform.
Vedremo anche gli aspetti legati alla metodologia e di come puoi avere il controllo sul processo di rilascio, di automatizzarlo e renderlo efficiente per ridurre tempi, costi e rischi.

Vedi il programma completo

 

devops aws

Se la tua infrastruttura si avvale dei servizi di Amazon Web Services, il corso DevOps Engineering on AWS che eroghiamo come Authorized Training Partner AWS è quello che fa per te.
DevOps Engineering on AWS dimostra l'utilizzo dei modelli DevOps più comuni al fine di sviluppare, distribuire e mantenere le applicazioni in AWS. Il corso illustra i principi fondamentali della metodologia DevOps e prende in esame vari casi d'uso applicabili a scenari di sviluppo di startup, piccole e medie imprese ed enterprise.

Scopri la scheda del corso

 

 

Contattaci per maggiori informazioni e offerte di acquisto in bundle.

aprile 20, 2016 - No Comments!

AWS Summit Milano

vogels

Abbiamo partecipato all’ultimo Summit AWS, evento con la presenza di oltre 1200 cloud enthusiasts. Caratterizzato dal keynote di Werner Vogels, chief technology officer e Vice President di Amazon.

In questo avvenimento, siamo stati presenti nell’area Expo insieme alle altre partecipanti alla Cloud Alliance, il network italiano di aziende che offrono servizi e competenze sul cloud.
In occasione del Summit abbiamo rivisto la nostra offerta di training, con una formula molto competitiva e un risparmio fino a €600.
La nuova tariffa Super Economy infatti permette di accedere ai corsi di tre giorni a soli €750, i posti sono limitati, maggiori informazioni e calendario disponibili qui.

aprile 20, 2016 - No Comments!

La nostra immagine ripensata

Group.png

Dall’inizio del nostro percorso, sei anni fa, abbiamo scelto un logo che rappresentasse in maniera giocosa la nostra voglia di sperimentare: una pozione per rendere piccante il codice e il riferimento all’eXtreme Programming in evidenza.
Nonostante la sua semplicità, si è rivelato legato ad un trend ormai passato. Ci ha servito bene attraverso i nostri primi anni, ma, come XPeppers è cresciuta e si è evoluta, il logo ha cominciato a non trasmettere quello che l’azienda era diventata.
Così, abbiamo deciso di rimodernare la nostra immagine, con l'obiettivo di creare un logo che sia una migliore riflessione di chi siamo e dove vogliamo andare da qui.

 

 

febbraio 25, 2016 - No Comments!

Coding Dojo a Trento: Refactoring codice Java

Il 27 gennaio abbiamo organizzato presso la sede trentina di XPeppers un coding dojo che ha riscosso un'ottima partecipazione di sviluppatori e sviluppatrici provenienti da tutta la regione Trentino-Alto Adige/Südtirol.

L'argomento della serata è stato il refactoring di codice legacy in Java, e i partecipanti si sono confrontati sulla risoluzione del Gilded Rose kata. Lo scopo del kata in questione è quello di andare ad aggiungere delle funzionalità ad una codebase esistente, scritta in modo ben lontano dall'ottimale e priva di test che ne provino il funzionamento corretto.

Come si è svolto il nostro Coding Dojo

Dopo una piccola introduzione al problema le persone presenti all'evento hanno avuto occasione di alternarsi in pair programming alla tastiera (prima come navigatore e poi come driver) e di mettere mano alla codebase con il supporto di tutte le persone partecipanti. Inizialmente si è cercato di comprendere meglio la codebase andando ad aggiungere un minimo set di test che dimostrassero la validità delle funzionalità già presenti.

Coding Dojo: Tutti assieme attorno alla tastiera

Tutti assieme attorno alla tastiera

Dopo questa prima fase abbiamo deciso di introdurre le nuove funzionalità richieste e qui ci sono venuti in soccorso i test scritti precedentemente perchè eseguendoli spesso ci hanno dato la sicurezza di non introdurre regressioni.

Tra un test in barra verde e una mossa di refactoring su Eclipse, i partepanti hanno potuto consumare degli stuzzichini delle bibite gentilmente messe a disposizione da XPeppers.

Pur non essendo riusciti a concludere l'esercizio, nelle 3 ore di coding dojo abbiamo avuto occasione di metterci a confronto con persone aventi background, skills ed esperienze diverse. E' stata sicuramente un'esperienza positiva e ne è riprova l'ottimo feedback emerso nel corso della retrospettiva tenutasi a fine incontro dove abbiamo analizzato con il classico "glad/sad/mad" la serata e i risultati ottenuti.

Coding Dojo: Retrospective time

Retrospective time

A fine sessione ci siamo lasciati con l'auspicio di organizzare questo tipo di eventi in modo più ripetitivo in modo da esplorare assieme argomenti di diverso tipo e creare un gruppo di appassionati di sviluppo software.

 

febbraio 15, 2016 - No Comments!

FOSDEM 2016 a Bruxelles

Anche quest'anno XPeppers ha partecipato alla conferenza FOSDEM il 30 e 31 gennaio a Bruxelles!

FOSDEM è una conferenza gratuita dedicata a sviluppatori ed ormai è diventata il punto d'incontro in Europa che ogni anno ospita più di 7000 persone, presso l’università ULB di Bruxelles.

Da tutto il mondo sviluppatori appassionati di open-source vengono per discutere e condividere le loro esperienze.

Ci sono innumerevoli stanze dedicate a linguaggi di programmazione, tecnologie e pratiche come virtualizzazione, testing e automazione, fino al mondo open-source in generale.

Abbiamo seguito talk soprattutto legati ai temi Testing and Automation, Virtualisation, Configuration Management, Containers and Process Isolation e IoT.

Nel talk Jenkins as Code abbiamo conosciuto il plugin per Jenkins Job DSL, che rende programmabile la creazione di job Jenkins. Il presentatore ha mostrato come l'infrastruttura di Uber ha sfruttato questo strumento per scalare e automatizzare molti processi che prima richiedevano un intervento manuale.

Per rimanere nel contesto testing e automazione, abbiamo seguito la presentazione "Beyond config management", in cui l'autore ci ha esposto le sue considerazioni su DSL (scritti in Groovy) per modellare e definire l'infrastruttura in modo programmatico. Potendo compilare questo codice, abbiamo la possibilità di avere un'analisi statica sul codice dell'infrastruttura, oltre alla sua testabilità.

Secondo l'autore, e anche secondo noi, l'approccio di modellare l'infrastruttura tramite codice, cioè "Infrastructure as code", è una pratica essenziale per creare architetture affidabili e resilienti.

Nel talk PostgreSQL features for IoT da Simon Riggs abbiamo visto le nuove funzionalità di PostgreSQL dove la vision è avere un database che permette la creazione di applicazione dove l'ambulanza arriva prima del incidente perché la misurazione del battito cardiaco ha rilevato che la persone sta per avere un infarto. Questo database può registrare una grande quantità di dati in poco tempo in continuo, l'esempio fatto è quello di registrare le misurazione di glucose ogni minuto di ogni cittadino del europa.

Nel talk Build an IoT platform on Matrix da Matthew Hodgson è stata presentata una introduzione al framework Matrix. Questo framework permette di create una piattaforme aperta e decentralizzata dove vari dispositivi IoT riescono a comunicare tra di loro in una forma semplice e affidabile.

Puoi trovare i video di tutti talk qui FOSDEM 2016


 

Ogni anno viene organizzata una serata dedicata al FOSDEM, al Delirium Café vicino al Grand Place, la piazza centrale di Bruxelles. Non potevamo perderci questo evento per conoscere nuove persone, per fare networking e per goderci delle ottime birre belghe (la scelta è molto vasta; parliamo di oltre 25 birre)!

Come potete vedere non abbiamo resistito agli sticker che venivano distribuiti ai vari stand:

FOSDEM stickers!

gennaio 20, 2016 - No Comments!

Continuous Delivery su progetti Java | Codemotion 2015

Tra le esperienze che vogliamo ricordare e condividere, il nostro talk al Codemotion 2015 merita un'apposita menzione.
 264b9cc12c47187be246b725b66e641d
In una sala stracolma abbiamo raccontato le nostre esperienze, tratte da progetti dove applichiamo pratiche di Continuous Delivery.

 

img_20151120_212052
Nel caso di studio abbiamo raccontato come siamo partiti da semplici task (build e deploy mono-ambiente) fino ad arrivare ad unica pipeline multi-ambiente ispirata allo stato dell’arte e alle lezioni che abbiamo imparato facendoci del male.

 

L’argomento ha riscosso molto seguito, con domande e richieste di approfondimenti. Anche per questo abbiamo organizzato un corso su più giorni in cui affronteremo questo e altri temi, qui puoi vedere il programma.

gennaio 15, 2016 - No Comments!

Apple TV Tech Talks for tvOS

We had the opportunity to participate at the Apple TV Tech Talks at Berlin. This was a one-day event where was possible to get in-depth technical information on building and designing for tvOS, and obtain valuable development instruction from Apple experts.

1

The event started at 9:00 and finished at 17:00 approximately, for a total of 11 talks each one with the duration of half an hour. During all day was possible to meet with Apple experts to get development help for tvOS.

The agenda was the following:

Morning Agenda:

  • Apple TV Tech Talks Kickoff
  • Designing for the Apple TV
  • Focus-Driven Interfaces with UIKit
  • Break
  • Siri Remote & Game Controllers
  • On-Demand Resources & Data Storage
  • Lunch

Afternoon Agenda:

  • Media Playback
  • Leveraging TVML for Media Apps
  • Best Practices for Designing tvOS Apps
  • Break
  • Tuning Your tvOS App
  • Making the Most Out of Top Shelf
  • App Store Distribution
  • Reception

We will now dive deep into each talk and describe what impress us the most.

Apple TV Tech Talks Kickoff

2

In this introduction talk was explained the agenda and expectations for the day. A event talking about the mindset, best practices, state of the art developing into this new Apple platform.

It was talked that the rate of innovation in mobile is very different in regard to the one seen on the TV.  In the words of Apple "The future of TV is Apps". Apps optimised for media consumption like NetflixYoutubeHBO, etc. Apps for fitness like Zova. For shopping like GILT. And gaming apps, like Disney InfinityDoes Not CommuteAlto Adventure. Or even the digital comic book like Madefire. And also children apps like Sago Mini Fairy Tales.

Apple says we are still at the beginning it is still needed to bring the innovation from the mobile platform.

Next was talked about the three tvOS Fundamentals and how they differ from the mobile:

  1. Living Room Experience
  2. Always Connected
  3. Powerful Hardware

6

The Living Room Experience differs from the mobile since it is used from distance, the interaction with the user is focus-based and the attention should be on the content. It often can be a communal experience with a shared device and multiple people interacting, in group or at different hours.

The fact it is a device that is (probably) always connected enables services like http live streaming, on-demand resources and cloud storage to always be easily accessible, versus a mobile connection that usually is unreliable.

3

The "powerful hardware" present on the Apple TV is basically an iPhone 6 without screen and without sensors, it contains the A8 chip with 64-bit architecture (1.5 GHz dual-core + quad-core GPU). Apple says that for developers this HW sets a new performance baseline development, instead of the A5 chip with 32-bit architecture (800 MHz dual-core + dual-core GPU) if you are still supporting the iPhone 4S (which still runs iOS 9).

4

Doing a tvOS app means you are using a separate SDK, with a standalone binary (versus targeting iPhone and iPad where the binary is the same). For developers means you can also use the same tools and frameworks with extra support for media and gaming.

5

Designing for Apple TV

Designing for tvOS means designing for the Living Room Experience. You should connect people to content in a direct way, even if the TV is far away from the user. With the remote you can use gestures, small or quick movements.

7

The experience should be connected, clear and immersive. The omnipresent parallax effect should delight and connect the user to the content.

Some things should be intuitive, it should be clear where the user is at the moment. It never should be hard to read text, and the UI should never be dense.

The app navigation should be clear, one in-out path.

8

The system font San Francisco was optimised for large distances, and it responds to accessibility settings.

When possible should be used the grid structure with the item at focus clear at distance.

There should not be ambiguous gestures with the remote.

When correct it should be used a cinematic experience with edge-to-edge background of movie images.

The user can interact with the TV using the touch surface, menu button, play/pause button. It is not appropriated to use multi-touch gestures with two fingers, but you can use one-finger gestures.

The Play/Pause button can be used for playback or game shortcuts.

The Menu is the back button for navigation (there should be no back buttons on the UI).

The Accelerometer and Gyro are available for use, and in certain cases can help to connect users with the content, for example with subtle movements in the controller affecting the content rotation.

The remote can also be used in landscape, for example in the break neck game.

The content should move in the expected direction, inverse of direct manipulation like iOS (except in fullscreen mode or games).

The UI buttons can have different distinct states, unselected, selected focus, highlighted, disabled.

The focus should be obvious, a good test will be: "Look out of the TV and look back, the content at focus is obvious?".

It is possible to add animation to make it easy to see which content is at focus.

Measurements for grids and spacing are available for use at Apple Human Interface guidelines.

Most of the times use clicks instead of taps, taps can be made accidentally, click is intentionally and often will be a better option.

Focus-Driven Interfaces with UIKit

The focus-driven interface present in the TV follows the finger movement and states the next view in focus. This engine calculates how to move and animate, where the focus should be at any moment, the parallax effect, the speed adaption (if I move faster the finger on the remote).

The focus engine handle all the (numerous) tasks related to focus model.

9

The Focus API gets the focusable view, the initial focus and current focus.
A new property was added to UIView called canBecomeFocused to tell if the view can become focused.

The new protocol UIFocusEnvironment introduces new the property preferredFocusedView and table and collection views delegate methods for handling the focus model. To UIView and UIScreen were also added new read-only properties.

11

The focus should not be set manually, the user should be in control of the focus.
Avoid ambitious cases, for example when views are removed, new views are presented or dismissed, the focus update requests where the focus should go. To do this use canBecomeFocused and preferredFocusedView

You can request focus, with setNeedFocusUpdate and update focus if needed for collection view cells, just remember to adjust the cell when the ancestor is focused, for example respond to focus changes by showing/hiding a label with animation.

The animation timing should responds to speed of swipe in the remote, fast movements make faster animations.12

If you want to listen to focus updates implement the method didUpdateFocusInContext.

Use focus guides to guide focus when it is not clear in the UI where the focus model should move.

13

14

To debug focus use the property whyIsThisViewNotFocusable, or using the option "Quick Look"  in the Xcode debugger.

15

16

It is also possible to tap edges of the remote Up, Left, Right, Down, Arrow, works on Siri remote, and with game controllers pads

You can also implement low level event handling, the touch API is also available, coordinates are from center of focused view.

Siri Remote & Game Controllers

You can use the Siri Remote as a game controller directly by using the game controller framework.

Touches on the Digital Pad are windowing, that is the framework creates a window with a center where user first puts the finger and all values are relative to this virtual window.

DPAD values are by default in portrait, you can adapt it automatically with a the allows rotation property.

The menu button in gameplay should toggle pause/resume instead of handling navigation.

You can integrate the controller with UIKit with the user interaction enabled property.

To disable the screensaver timeout with idleTimerDisabled property, this should be done not always but only while in gameplay mode.

To access device motion use the GCMotion profile, this access accelerometer and gyroscope data, this data is already filtered and uses fused data from both sensors. This access is not intended for vigorous shaking aggressive movements.

17

18

There is a limitation for the number of controllers you can use: one siri remote plus up to two MFI controllers. You should always take input from all controllers if possible.

19

On-Demand Resources & Data Storage

20

Instead of traditional apps and downloading all the bundle, in the TV based on user interactions and predictions you download the resources you need. For example, when the user downloads the game, the app may contain the first level, and based on the level he is playing the resources are downloaded for that level, and when no longer in use they are erased.

21

The dynamically loaded content is hosted in the App Store. The on-demand resources feature enabled prioritised downloads and intelligent caching.

What the customer gets with on-demand resources? Better install experience with reduced time install, more apps on the device, and up to 20GB of content.

You can define install tags (download on demand) for the content and prefetch tags (immediately download after install).

The TV storage limits are the following base app up to 200MB, on-demand up to 20GB, in use app up to 2GB.

22

Initialise the content with a set of tags, then begin requests, and after tell the system when you are finished. You can track the progress of request, but ideally you should not have need to use this, instead you should anticipate the user needs better. Temporary data is subject to purge.

You can set the loading priority, and also set an urgent priority if the user is waiting for the content. You can use the property Is content available? You can conditionally begin accessing resources and receive the result with a completion handler.

23

You can also set a preservation priority to tell the system how important is to keep around the disk, this is for content not actively used, and is used for caching, it is relative to your app not system wide (don't set it to 100 to keep it around more than other apps ;)).
To test on-demand resources you can use Xcode and Xcode server, this is a artificial download, it should test correctness not performance.
If you use TestFlight closer to deploy, you get real world performance with the network link conditioner.
You can also embed the resources in the build, build settings to embed assets into the app, not correct for App Store, can be used to distribute ad hoc the app outside of App Store.
It is also possible to host the content in your internal web server, for example in a enterprise scenario.

To store small preferences data you can iCloud key-value store, for structured and bulk data you can use CloudKit. Remember that the user might not be signed in and multiple people may be sharing the device.

24

The cool thing is that public data is available even if user is not signed in. There is however a single sign in account per user.

Media Playback

The TV can offer a very good media playback experience. The video player present in the framework does a lot of heavy lifting for you. The AVFoundation and AVKit provides a info panel, language, subtitles, sound, content scrubbing.

AVAsset represents a single media asset, from a file or streaming. AVPlayerItem, references single asset, with metadata. AVPlayer, manages the playback of a AVPlayerItem and AVQueuePlayer plays multiple items in sequence.

To show metadata in the info panel, you set it in AVPlayerItem or set it with external metadata. "What did he/she just say" feature of Siri uses this metadata.

25

Interstitial time ranges, time ranges not part of actual content (ads,legal,warnings,etc.) and you can set different rules for it, for example no skipping ads. Avoid swapping players to display interstitial, instead use AVPlayerViewController delegate methods for managing interstitial , for example to disable skipping.

Rare cases can use AVPlayerLayer directly, use it when you want to customize the playback experience, this provides No Controls or UI, Zova uses it to skip/previous exercises.

The reproduce media can be file based (Local bundle, On-Demand Resources, or cached). This has to be downloaded prior playback and should be very short clips to avoid long loading times.

The ideal way to provide media is trough http live streaming (HLS), segments are downloaded during playback and is adaptive based on the available the internet connection status

27

The used codec is H.264 / AVC, it supports up to 60fps.

In the audio can be add described video track for accessibility. To support "trick play" it is needed to add frames with EXT I FRAMES. Subtitles are important for accessibility of for the "what did he just say" Siri feature.

For more info on the media reproduction with accessibility it is recommended to see the presentation of the WWDC13 Preparing and Presenting Media for Accessibility.

Leveraging TVML for Media Apps

TVMLKit is used by the App Store, music and video apps from Apple. It is recommend when the server content is the focus of the app.

2

TVML is template based language that offers consistent UI, and can lead to reduced development effort with shorten time to market.

1

Optimal cases where leverage existing client server architectures benefit a lot from TVMLKit, you
provide native experience with little development times.

As said clearly by Apple this is not a web browser.

The UI is defined with a XML document. and you can link the JavaScript with Swift or Objective-C. The TVJS framework has access to system frameworks, and you can bridge from native to JavaScript and vice-versa.

4

3

5

6

For debugging you can use the Safari web inspector.

Apple haves sample projects made with TVML and content server samples.

Best Practices for Designing tvOS Apps

This talk was about the common questions and problems when designing for tvOS.

In the TV loading is a constant, since the local storage is limited and you can always assume a network connection. Therefore you should at all costs avoid blank screens, is better to use placeholder for images and the UI, while the content is being loaded.

1

Activity indicators or other UI elements can indicate well progress, The game Does Not Commute and Rayman Adventures do it very well. In the first the radio of the car presents a loading bar and then it is the place where the game is played, in the latter we see Rayman running when loading the content.

Always try to set expectations to loading time, and use the loading time to educate the user (with useful info) or entertain him. Galaxy on Fire app when loading shows the story or if you skip show game tips.

Try to avoid authentication since it is not a good experience, if you need it, for example with payment systems, delay it until it is really necessary. GILT app lets browse everything without sign in until you try to buy something.

Important if you need to ask for emails remember to use the correct keyboard that shows the Recent emails entered in any system app.

When needed you can create a companion app to do more complex authentication behaviours.
Not on the high street app completes the payment with an iOS companion application, it finds your device in the network using the bonjour technology.

Since the apps in the TV can have multiple users Include a fast profile switching like in the Airbnb app.

Very likely your app will be used in different devices, iOS or tvOS, therefore make restore purchases obvious.

2

The on boarding is critical to show how to use your app. Try to get out of the way, remember people want entertainment, they don't want to read instructions.
Badland app does not show any instructions when starting, when you start playing the possibilities are gradually presented.

The on boarding should not be a crutch for a bad UI. If developing a game show the controls when the user pauses the gameplay, like Breakneck app does.

Transistor app show different instructions based on the controller you are using. Click with Siri remote, or press buttons with MFI controllers.

The Alto Adventures game show instructions as you go, much more fun than displaying a list of instructions (that everyone will skip).

3

Try to anticipate the need for help and give the information to users gradually.

Using a cursor to point something is wrong , the focus model is right. Try to design the UI right to take advantage of the focus model.

4

Take in mind that the TV is a totally new device, design specifically for this platform don't try to port from Mac or iOS, it will not work.

Making the Most Out of Top Shelf

The tvOS has a feature called "Top Shelf", that is when the user moves the app to the Top Shelf (the upper dock of the main screen).

When the app is at this position it has control of the content displayed on the Top Shelf. This can content can be a static image, and so it is not interactive.

If your app was moved to the top of the home screen the users are already using it, this is no place to capture users, but instead to promote content to your users and provide a quicker access to parts of your app.

If you choose to display dynamic content try to ship it on the first version otherwise people may lose it. This dynamic content has also the advantage that it is not linked to the bundle so it is always update when you change the service that serve this content.

Sing by Smule app does it with image content from the application. Zova shows the most relevant content for the user. The Newsy app shows featured content.

This feature can saves steps by going directly to content, and you should implement play to start immediate playback.

To be personalised you can  use the TV top shelf provider protocol. You can choose the Top shelf style, that can be a unique part with inset or divided by sections.

To populate the shelf you define a Tv content item array, specifying the image ratio and other metadata. If you use the section style you return an array with the sections.

You should provide links to content, with custom URL schemes for your app and responding to system calls, like you do right now in iOS.

The URL with media should go directly to playback when the play button is pressed.

You should implement the play direct option and display for all content on the top shelf, posting to different parts of your app.

To let the system know when the items will need to change using the notifications : tv top shelf items did change notification.

App Store Distribution

A the moment the tvOS App Store is available in over 100 countries. All apps are handpicked by Apple, trough their submission process, very similarly to iOS. The sections in the store are Editorial curated by local Apple employees and the store also displays a search feature and the traditional top charts, divided by paid, free and grossing.

The top markets for iOS at the moment is the following:

IMG_0235

There are some business considerations to define when developing an tvOS app. These Business models are the same as iOS. And application can be free and make money by selling services or goods (GILT, Airbnb, etc.), it can be a pay once strategy (Alto Adventures, etc.), a Freemium model, free to download and pay after for contents or features or even a Paymium model, where the user pays to download and then pays after for contents or features.

For the TV almost 40% of the applications are paid, contrary to the 10% in iOS.

IMG_0233

IMG_0234

Depending on what you want to achieve reach (maximum number of users), revenue (maximum return) or both, you have to find a solution that fits you and your users.
Freemium can be a good model to reach both a user base and still make a good revenue from the app.
It is a difficult task to find the right price for throughly charge users, and what kind of model does your user expect.
To help reasoning you have to think which kind of use is your app best at, people will use it periodically for a quick use or it has a lasting value? Does the app gets better the more user it has? All these are important questions that affect you product development.

With the TV Apple introduces a feature called "Universal Purchase" this is a non reversible action that enables your users to purchase once and use it in iOS and tvOS.

In app purchases are a place where you can use this feature, always demand the same question "What is most important reach, revenue or both?". Take in mind that customer don't want to pay two times, but if you offer something different/platform specific it may work. Take in consideration also case where you have Content right limitations , show in mobile and tv may not be the same and the user understands it (a little bit like Netflix does with their business model).

Both app stores enable global expansion and make it easy to start a global business, the iOS App Store is right now at 154 countries. But take in mind that the editors of the App Store like to feature local content. A good strategy should be to consider the top markets by leveraging also your own data and localise the app right in order to meet customer expectations (if I see a app in the store in my language but after I download it and I don't understand anything I will delete it).

Remember every visitor in the store is a potential customer, polish your Icon, have a good, unique, short app name, match uniqueness, short, no Apple TV or tvOS trademarks. Take great screenshots of your app. The first 3/4 lines of the description are the most important.

Keywords are important for ASO. Use all 100 characters, commas, plurals and category are not necessary, they are automatically added by the engine. Add relevant keywords by understanding well the rules.

IMG_0238

IMG_0239

When developing marketing materials use tvOS approved image in guidelines, Download the App Store badge to display in your website, add icon imagery. A good example is the Sago Mini Fairy Tales app.

Getting featured in the store is very easy, just make a great app that customer will love. :)IMG_0241

Always ask yourself the following questions: Is the app unique? What make people love your app?

The app should be engaging, provide a living room experience when interacting with a group of people. It should be have a intuitive use of Siri remote.

The first time a user opens you app should be fantastic, with great on boarding (don't use on boarding screens, don't pop up for login at start).

Remember that performance matters, if the app is slow at loading, freezes or crashes, it will not be featured.

If the app is not a port of a Mac or iOS but it is clear that is designed specifically for tvOS also helps getting featured.

Getting featured is also a matter of understanding the process at Apple. They refresh the contents every Thursday. Usually the it has certain themes for holidays or periods of the year (for example a fitness app in January, I see what you did there Zova :) ). They have a preference for localised content, and have focus on initial launch and significant updates.

Even if Apple does not naturally discovers your app you can also let them know. Be sure to send the Product details, Apple ID and App Store link. Tell what makes your app special, your product roadmap, send the marketing material. Be sure to contact before going online, 3/4 weeks before is the recommend time frame. The contact email is appstorepromotion@apple.com

IMG_0243

Quality always comes first when getting featured, having the right business model to enable sustainable development of your app. Try to think global but be local. Create a great product page to help drive your sales and don't forget to market your app.

Conclusion

Overall the Apple TV Tech Talks for tvOS was a great day, the presentations had a great quality and the Apple experts at the event were very available to answer any doubt regarding different parts of tvOS.

All the materials of the event are present here.

gennaio 13, 2016 - No Comments!

Una partnership più forte con AWS per progetti più grandi

Una buona notizia per concludere il 2015 e iniziare alla grande il nuovo anno, siamo diventati Advanced Consulting Partner di Amazon Web Services AWS.

AWS Advanced Consulting Partner

Questa partnership ci ha permesso di entrare in contatto con moltissime realtà interessanti che stanno utilizzando o vogliono adottare le soluzioni AWS per il proprio business.
Queste sono state alcune tra le attività svolte questo 2015:
- Sviluppato applicazioni innovative e cloud-native utilizzando le pratiche di Continuous Integration e Continuous Delivery;
- Portato il DevOps sull’infrastruttura AWS, con strumenti come Puppet, Chef, Ansible, Vagrant e altri;
- Scoperto e introdotto servizi AWS DevOps come CodeDeploy, CodeCommit, CodePipeline, Elastic Beanstalk, OpsWorks, CloudFormation e altri.
E non solo, come Training Partner abbiamo organizzato corsi per formare sviluppatori e sistemisti con competenze molto richieste (e difficili da trovare) sul mercato.
I nostri clienti otterranno ulteriori benefit da questo avanzamento di livello in quanto ci permetterà di creare soluzioni ancora più su misura delle loro esigenze.
Siamo pronti per un 2016 con nuove sfide ? ? e voi?

gennaio 12, 2016 - No Comments!

XPeppers has become Advanced Consulting Partner

GOOD NEWS TO END 2015 AND TO BEGIN THE NEW YEAR, WE BECAME ADVANCED CONSULTING PARTNER FOR AMAZON WEB SERVICES.

advanced
This partnership has allowed us to get in touch with a lot of really interesting reality that are using, or want to adopt Amazon solutions for their business.
These were some of the activities:
  • Developed innovative and cloud-native applications using Continuous Integration and Continuous Delivery practices
  • DevOps in the AWS infrastructure, with tools like Puppet, Chef, Ansible, Vagrant and others
  • Discovered and introduced DevOps services like AWS CodeDeploy, CodeCommit, CodePipeline, Elastic Beanstalk, OpsWorks, CloudFormation and others.
Not only, as Training Partner, we have organised training courses for developers and systems engineers to provide skills in high demand (and hard to find) on the market.
Our customers will further benefit from this level advancement as it will enable us to create even more tailored solutions to their needs.
We are ready for a 2016 full of challenges ? ? and you?
About AWS DevOps Competency

AWS provides a broad set of flexible services that spans from the development process to deployment, provisioning, and management. These services easily integrate with popular third-party tools to build out an end-to-end solution that fits your needs. These AWS services are designed to simplify provisioning and management of your infrastructure and applications, deploying your code, and automating your software release process. With these services you can quickly build your cloud infrastructure, deploy applications to any instance, or easily create complex applications on AWS.

About APN Programs and AWS

APN has four performance tiers based on training, customer engagements, and overall business investment on AWS. These tiers are: Registered, Standard, Advanced, and Premier. By increasing our firm's level of AWS expertise and engagement we have achieved the penultimate performance tier as demonstration of the efforts made in the last two years.

dicembre 29, 2015 - No Comments!

Agile@Work – Bolzano 2015

Conferenza Agile, Cloud, Devops

Il 4 Dicembre 2015 si è tenuto a Bolzano l'evento “Agile@Work”, una conferenza su Agile, Cloud e Devops.

La collaborazione tra XPeppers, TIS e Red Oddity è stata un fattore determinante per la buona riuscita della conferenza come dimostrato dal numero dei partecipanti e dalla velocità con cui sono stati prenotati i posti disponibili. A questa prima edizione hanno partecipato infatti circa 100 persone provenienti principalmente del Trentino Alto Adige e dalle altre regioni del nord Italia.

Agile@Work Bolzano 2015

Agile@Work Bolzano 2015

Tematiche

La giornata è iniziata con l’introduzione di Roberto Bettazzoni in sessione plenaria che ha catalizzato l’attenzione facendo una panoramica generale su come utilizzare il Framework Cynefin per identificare ed affrontare situazioni semplici, complicate, complesse e caotiche e sul ruolo centrale delle retrospettive per adattare il modo di affrontare i problemi in base alla situazione esistente.

La giornata è continuata poi su tre track parallele dove sono stati presentati talk e workshop che hanno riscosso tutti un grande successo. Di seguito potete trovare i link ai video ed ai materiali resi disponibili dagli speaker.

Ha riscosso particolare interesse anche l’idea di rendere disponibile un aula dove le persone hanno potuto continuare a discutere degli argomenti presentati nei talk.

Riepilogo delle sessioni

Si riporta di seguito l’elenco delle sessioni presentate (talk e workshop), i link ai materiali presentati ed alla play-list dei video.

Why you need to change your way of working - Roberto Bettazzoni

Some of the most advanced technical practices allow to get sustainable and effective benefits only if you use them properly. Unfortunately the inertia in adapting the way of working to the changing needs can thwart any technological advantage.
In this talk I discuss the reason why an appropriate change of the way of working is a non postponable need. I also present some methods and indicators to help you adapting your way of working to the product’s needs, your company's culture and the technical practices.

Visualizza presentazione su SlideShare

What is Agile? - Marco Trincardi

Most of the times Agile is described as a set of practices. In this presentation I will give a different point of view of Agile, where practices are just a means to build an effective working culture.

Visualizza presentazione su SlideShare

Continuous Delivery on Java projects - Paolo D'Incau

We will talk about real life examples where we apply Continuous Delivery practices and principles. We will tell how you can evolve in an iterative way a CD pipeline starting from simple tasks (build and deploy on a single environment) to a multi-environment pipeline inspired by what we learned by hurting ourselves. We will give concrete examples, keeping the focus on the code, the infrastructure and the relationship with the different stakeholders.

Visualizza presentazione su SlideShare

Hiring Great People - Pietro Di Bello

Getting the right people will help create a great team, and will let it grow healthy. Moreover, it will keep it rooted in your company culture, and sustaining that same culture in turn. Nevertheless, too often recruiting is overlooked or completely delegated to HR or external recruiting agencies.
In this session I’ll share our experience in building our actual recruitment process, how we got to this recruitment workflow, what lessons we’ve learned and what are the key elements of a recruitment process. I’ll also examine some differences compared to a more “traditional” way of selecting and assessing people.

Visualizza presentazione su SlideShare

Event-driven (serverless) applications - Danilo Poccia

We built event-driven user interfaces for decades. What about bringing the same approach to mobile, web, and IoT backend applications? You have to understand how data flows and what is the propagation of changes, using reactive programming techniques. You can focus on the core functionalities to build and the relationships among the resources you use. Your application behaves similarly to a “spreadsheet”, where depending resources are updated automatically when something “happens”, and is decomposed into scalable microservices without having to manage the infrastructure. The resulting architecture is efficient and cost effective to run on AWS and managing availability, scalability and security becomes part of the implementation itself.

Visualizza presentazione su SlideShare

Agile banks, is it an oxymoron? - Marco Trincardi

Stated that Bank is an example of Control culture a Bank, Introducing Agile in a Bank is more working on existing culture than teaching practices.
In this talk I want to share my year experience on agile introduction in one of the most important Italian Bank.
I will cover the topic on how to be agile introducing agile, Scrum of scrum as the simple thing that could possible work, the compromises we accepted, the pitfall we faced; in essence how to instill an Agile Culture in a Control Culture environment.

Visualizza presentazione su SlideShare

Extreme Contracts - Turning negotiation into collaboration - Jacopo Romei

We care too much for contracts and too little for collaboration. We maximize contracts' value as safety devices and we never focus on their value as collaboration enabler. We want contracts that go fast towards a deadline instead of finding agreements which bring you and your counterpart to trust each other as soon as possible. We read in the Agile Manifesto: "[We value] customer collaboration over contract negotiation". How can we make the latter foster the former?

Test Driven Infrastructure - Filippo Liverani

Many IT operations teams are used to managing infrastructure manually or with simple one-off scripts. This manual work and lack of verifiable behavior results in many issues and in uncertainty. In software development, Test Driven Development (TDD) is well recognized for improving design, increasing code quality, and allowing refactoring and better knowledge sharing.
Similar benefits can be gained in infrastructure projects when infrastructure is treated as code, driving that code development with tests. Configuration management tools such as Chef and Puppet allow infrastructure to be easily described as code and provide a complete support to introduce and run tests. This can allow development and operations teams to collaborate and confidently deliver working infrastructure code.

Visualizza presentazione su SlideShare

Collective code ownership in Extreme Programming - Dario Coco

What can we do to improve communication and knowledge sharing in an Agile team? Collective Code Ownership is one of the most important rules in Extreme Programming: every member of the team is responsible for the architecture.
In this talk we'll explore the connection between CCO and the other XP rules, and we'll see some techniques that can help us in following this good practice.

Visualizza presentazione su SlideShare

Video


Approfondire gli argomenti

Per ricevere maggiori informazioni sui temi trattati, puoi contattare gli organizzatori ai seguenti indirizzi:

  • XPeppers: info@xpeppers.com
  • TIS Innovation Park: info@tis.bz.it
  • Red Oddity: info@redoddity.it

Il team XPeppers sta preparando il calendario corsi per il 2016. Visto il notevole interesse su queste tematiche riscontrato alla conferenza, sta pensando di proporre dei corsi anche a Trento e/o Bolzano. Se foste interessati a frequentare uno dei corsi disponibili vi invitiamo a compilare il modulo che abbiamo predisposto. Questo ci pemetterà di organizzare i corsi nelle sedi che risultano più comode per gli utenti interessati.

Ringraziamenti

Un ringraziamento particolare a:

  • XPeppers, TIS Innovation Park e Red Oddity per l’organizzazione dell’evento.
  • TIS Innovation Park per aver offerto la sede per l’evento e per il servizio.
  • Red Oddity e  TIS Innovation Park per aver promosso l’evento tra le aziende locali.
  • XPeppers per aver offerto il pranzo ed il coffee-break.
  • Tutti gli speaker per aver proposto talk e workshop che hanno riscosso grande interesse.
  • Tutte le persone che hanno partecipato per aver investito una giornata del loro tempo per confrontarsi sui temi trattati.