Matteo Montani pic rawfish

Meet the team at Rawfish: Matteo Montani.

Rawfish is not just programming, Rawfish also has a large UX team to help our customers thrive. With six years of experience, Matteo Montani is one of the veterans of the team. Let’s hear what he wants to say about his adventure with us.

Matteo, explain us in simple words what your role is at RawFish.

I work with the UX and UI design team. I deal with the design of the human-machine interface, the websites and the connection between mobile apps and devices.

You’ve been working here at RawFish for six years now, how did this adventure start? What did motivate you to join the team?

It happened almost by accident. I was working for another company, and there I met a person who had worked with Rawfish before, so we started to talk about this reality I did not know yet. When I felt the need for a new challenge, I sent out many resumes, including one of course to Rawfish, and here I am! I was called in for a collaboration on a project (Quickword), then they decided to introduce me to the client and it was all smooth and easy from there.

Are you working on an interesting project?

To tell the truth, I am working on too many, luckily there is no shortage of work, and they are all very interesting. Among those I can talk about, are certainly our flagship projects CityPop, Domho, Adecco Group, NOWR and Pampers Nuova Vita, but I would also like to mention Funitek, Renesas, PatchAI and Z Padel. There would be many more, but it would take too long to list them all.

After six years, what still drives you to work for RawFish?

The reasons are many, but the first that comes to my mind is certainly that they give me a lot of freedom. My work as a designer has the right balance between rigour and creativity, and here I have the opportunity to work as I wish as long as I meet the deadlines, of course. It is also nice to be able to study the user’s psychology and come up with new ideas to adapt to it.

The best part is, that I sincerely am a bit the “opposite” of my job. But here we no longer have a stiff idea of the hierarchy and the product as we did in the companies where I worked previously, I have plenty of time to work out the right solutions for both the project and myself.

Could you define yourself with a sentence or adjectives?

Not my style actually, to define oneself always risks being a brag. I prefer others to define me if it is really needed.


App clips could be the future of the App world

During the WWDC in 2020, Apple announced its new App Clips service. The idea itself was not totally new. In fact, a mini-apps service was already provided by the Chinese platform Wechat, and in a different way by Android too (instant apps). Apple obviously means to take this service to the next level by focusing on the endless business chances that can result from it. Given how easy they are to use, and their greater flexibility, Apple predicts that there will be a major shift from the use of complete apps to clips, so the two are likely to coexist in the near future. Of course, much will also depend on the ability of individual developers to create perfectly functional clips that will be more than just a demo of the original app.

 

Clips: what are they?

How do these App clips work? We can call them “fractions” of apps created to fulfil a specific purpose. Connected to the main app, they do not require installation and can be very useful for carrying out some actions (such as microtransactions) in a brief time, without the necessity to download the complete app.

They can be activated via NFC, QR code, URL, or a call to action. Although access to given system services (such as apple pay) is required, it is possible to hypothesize the use of these clips from a user-centred service perspective. In fact, many of these clips can appear as a suggestion on the screen according to the customer’s habits, or even depending on the customer’s location. Since they are extremely light versions of the app from which they were “born”, it is often enough to activate them instantly by a simple touch, they do not burden the memory of our device or cause chaos on the desktop (Apple has set a weight limit of only 10MB for each clip). We can also consider clips as a means to motivate the user to download the full app. The user will receive a notification that will suggest the download of the original version.

A new standard for the app market.

The system could also bring some new energy to the app market, which generally tends to be monopolized by a few players, giving the possibility even to these exercises which are normally penalized by the search algorithm of the apps themselves to be found, allowing them to be more easily identified by the user, given a QR or NFC code. The user could download only the part of the app required, for example, to order from a restaurant menu, or to compare prices and discounts in the shop they are visiting. In addition, Apple suggests using the App Clips in combination with some general Apple devices such as App ID and, of course, with Apple Pay, in order to eliminate two “complicated” procedures such as registration and entering payment information.

The limits of the clip.

Payment system and login are linked only to the kits offered by Apple (Universal Links or Url Scheme are not supported, i.e. those links that can be clicked from any browser that lead to internal app sessions). The app clips are unable to use background services, are unable to save information, access contacts, and files (Apple Music, Photo Library, Motion Data, HealthKit, Files, Contacts, and App Clip Calendar). Data sharing is only allowed between the Clip App and its main app. However, the latter is not necessarily just a limitation, as it has the advantage of not sharing sensitive data with third parties, nor allowing them to be stored for longer than strictly needed. Not having to fill out forms with your data as you must to for many free apps, and with all transactions taking place via Apple Pay, customers cannot be forced to share information with the app if they do not want to.

A strategic solution for business.

Rawfish is also beginning to explore the possibilities offered by this new technology, especially for what concerns apps to be connected to proximity mechanisms and the like, always from a commercial perspective aimed at promoting the entire app to users.

The feature makes sense for public-facing and non-personal IoT products, such as beverage/food dispensers, bike rentals, scooters, parking payments, and everything related to smart mobility. Other functions could be signing documents or demo versions of video games. It might also make sense to try out a streaming service or for one-shot content (see a movie or a game). Since many of them can be activated through QR or NFC they are immediately available, it will not even be necessary to search for them in the store.

 

Photos by Macitynet.it, ispazio.net e Apple.com


Alberto Simonato

Meet the team at Rawfish: Alberto Simonato.

The work done at Rawfish is very rigorous, but yet there is plenty of space for creativity. Alberto Simonato makes sure both those aspects are part of his daily work and that they are part of the final product.

Alberto, tell us more about what you do!

I am an Art Director, which is my main but not only role here, so I generally take care of managing the projects and their outputs, to be sure that they are always 100% implemented. My aim is to raise the quality standards a step further both in design and in the applicative, especially from a UX / UI perspective.

How comes, you are working at Rawfish.

It is a long story, it all began in the days I attended the Boscardin tech institute in Vicenza. There, I immediately understood that I would walk a path that would lead me to land a creative job. So I followed a three-year course in Multimedia Communication in Ferrara where I began to become familiar with many programs that I now use often at work (Photoshop, 3DStudioMax etc), as well with the basic codes and programming (CSS, Html and so on).

After completing my studies, I was lucky enough to immediately be given an internship in a communication agency here in Vicenza. I worked there for ten years, climbing my way from intern to artistic director, and there I began to create and design websites.

While I was working at the agency, I met Massimo Giordan who worked there from time to time as a provider for mobile app development. We started to chat and eventually he told me about Rawfish and finally in 2015, I decided to take the leap and start to work at Rawfish.

Interesting story, so what are your duties nowadays?

Right now, apart from managing the internal and external communications of Rawfish, I am dealing in particular with the restyling of the website of an important Italian newspaper, and with the creation of concepts proposed by our teams when we do apply for tenders (we are applying for working with two very important Italian companies).

These two projects have been engaging the whole design team, but being disconnected from a programmatic document, we enjoy a certain degree of freedom in its management. Given the complexity of the project, they have still been keeping the team busy for a long time, still we have never lost our enthusiasm.

Let's say goodbye as usual with a sentence that defines you.

"Hey you, dandy!" It's a line from a Bud Spencer and Terence Hill's movie, and it's usually te one my friends mock me up with because I'm anything but a person who likes to dress up. Since I like their movies and the phrase fits with my mood too, we often use it for fun and to lighten up.


IOS rawfish 7 resons

iOS: 7 critical points we cannot overlook.

Agile and solid, iOS is Android’s only worthy competitor in the vast world of mobile programming. The integrity and solidity of the Cupertino company, however, do not always represent real advantages for the programmer, who often finds themselves hindered by those very same qualities of the system.

We have already listed what were the things we don’t like about the Android system, so today we are going to analyse what are the issues we have with iOS. Here are what we think are the sore points of this system:

IOS computer system

Way too many certificates required.

In theory, a large number of certificates should represent a great advantage, a considerable guarantee the quality of the product is top notch. In the case of iOS, however, these certifications are not just many. They are TOO many, and not always easy to obtain. iOS development, iOS distribution, Provisioning profiles just to name a few, getting them all is an overwhelming task. Android only requires just two key stores, one for the development and one for the release of the apps. Android wins fair and square in this case.

It is a rigid system.

This too is a feature created with the best of intentions, but which ultimately isn’t worth all the pain. It’s great to have a controlled and solid system like iOS, at least until it gets frustrating while trying to keep up with all the protocols the system requires. Especially for those who have just approached the world of programming, this is a factor that can undermine the motivation of the most focused person. Privacy protection is certainly an advantage when we talk about data management. However, it does not allow full access to its features because the apps can communicate only in a very rigid and restricted way.

Publishing apps is complex.

An app, to be published in the store, must comply with numerous standards. It must be unique, useful, and stick to the “Apple style”, meaning it must bring to the table that surplus in terms of design and entertainment that is the very core of the brand’s identity. A whole new world compared to Android’s jungle, but there is much left to the arbitrariness of the store reviewers. If the developer knows the verdict only after spending time and money in developing the app, it is clear that just a few people will have the right motivation to try and produce a large number of them, as there is a real risk of their investment becoming depreciated. If an error is found, a great amount of time is wasted because we must wait for all checks to be made, before we are told about it. When we talk about the release, there is no automated system but we must always wait for the end of the cycle to know about any critical issues in the apps.

IOS logo lego

XCode is a limited system.

There are no valid alternative environments, everything goes through XCode. This causes slowdowns in the developer workflow. The problem is that the time needed to perform most actions is much longer than with other operating systems, and debugging features are limited, and don’t support more accurate testing sessions, as they should. The operating system itself is very rigid and places limitations (it is a precise corporate policy choice), which further slows down any type of process.

Starting to develop is very expensive.

Not only are you forced to develop only on Macs, which gives you little choice when it comes to the initial budget you need for a device, given the average price of a Mac. Plus, signing up for Apple’s App Dev Program costs as much as € 100 per year, an excessive expense, especially when compared to the one-off solution of € 20 of the Android equivalent.

XCode is a slow development system.

XCode is neither lean nor fast. This causes much longer development times and dead periods than with other operating systems. Debugging tools do not help the developer test the application and fix bugs. In addition, Xcode tends to take up a lot of space in fixed memory and this can lead tomore problems, if you do not have desktop / laptop PCs with large hard drivers or SSDs.

Swift UI is still an immature feature.

It is not possible to use it for the creation of new apps, due to its compatibility problems with the most current technologies. Each time you must wait for Apple to release the new kits (the PDF kit is not compatible with Swift UI). Navigation between apps is also problematic due to the presence of multiple bugs (especially when we are navigating, when we access a new screen it does not correctly show all the features) that Apple seems to ignore.

A special thanks to our iOS development team: Alessandro Maroso, Vlady Turato, Davide Pagin.

Photo by Mohamed Mrishi , Marina Vitale on Unsplash


Outsystems cover

OutSystems, a modern approach to business oriented programming.

Outsystems and its perks.

OutSystems is an application for a fast development system based on low code. It works through a drag and drop programming method, consisting of ready-made graphic components and widgets, available on the platform. It is a system that works differently from the standard, with a visual approach that reaches all areas of programming, no matter if they are part of product construction, design, or systemic aspects. Saving time in creating apps and digital solutions is probably the best Low Coding attractive feature, as it renders building a program more manageable in a shorter time, which can be dedicated to business and risk management. This is especially advantageous for those companies that are already densely structured, and that suffer from the competition of those competitors with a more agile and flexible structure. Nowadays, where everything, especially in the technological field, moves so quickly, it is paramount to create products with a longer life span.

The platform, as intuitive as it can get, is divided into four sections:

Processes:

It includes the implementation of timers and batch processes, some of which is automation of the same.

UI:

The display of graphic elements and components that build up the interface.

Date:

Where the built application database is integrated.

Logic data:

all the computing part, the whole system behind every single widget.

As we have already stated, the process is very intuitive. Junior / senior developers and designers can easily build professional user interfaces. The alternative mode is “building by coding”, which is simple, but less immediate than how easily the WYSIWYG mode is managed.

If the developer needs assistance during the progression of the project, OutSystems provides a forum where answers to almost every question are given in detail. The platform also offers a wide range of free courses for those wishing to improve their skills. It starts from the most basic ones (normally for free), up to the more advanced (normally paid ones).

Why choose OutSystems?

Flexible and straightforward.

Outsystems’ low programming nature makes it particularly flexible and easy to use. Preformed blocks are intuitive to use and help build apps and pages with a minimal learning curve. The drag and drop system greatly reduces the time needed to build an app, and reduces the gap between traditional software development and modern DevOps.

Forge, workshop for components.

Forge is the store where the community develops and shares reusable components, modules and connectors. These add to the official components created by OutSystems with relative ease, and can be smoothly integrated with SAP and Google Drive.

The platform allows programmers to create frontend and backend components. Implementation of both apps and APIs, which can be used by other apps.

Project Publication.

Publishing a new app is also made easier by creating PK. These are files that include the features of the application, which can be easily uploaded to the store. The publication of a new version through the OutSystems console takes place automatically, with no need to go through the PK mode again. The developer does not have to re-create the file, but he can publish it through a single command. OutSystems auto generates the file. The same code can in fact produce, for example, the native Android and iOS versions of the same project. This also changes how the update works, as the application is not downloaded from the store, but an automatic update takes place within the application itself. As the apps are created in native language, they are portable to any environment.

Designed to manage important Enterprise projects.

Strategically speaking, our OutSystems certified team is able to tackle complex enterprise projects with a new learner technological approach. Traditional systems would not allow such straightforward management. It is especially suitable for B2B projects where the value of datas is preponderant. The greater connectivity guaranteed by the low code approach allows for improved process management, and by consequence savings on the maintenance of structures and investments. It also allows integration with industry standard protocols, API implementation and third-party business tools such as SAP and Salesforce. The speed in handling the feedback process also increased, and thus a more accurate ROI (return of investment) calculation is possible.

It can recycle previous structures.

Low-code can work with code previously developed by an IT team, so previous investments don’t go to waste. The platform’s advanced architecture can take advantage of microservices and containers, making the process flexible and scalable without impacting performance or compromising on governance and transparency.

The importance of certifications.

Acquiring new certifications is essential so we can train developers who are able to ensure operational skills and quality output on projects. We have set up a certified team which follows end-to-end Enterprise projects with OutSystems.

Vlad, one of our Senior developers, is pleased he achieved his OutSystems certifications. He obtained the first one about four years ago, as Traditional Associate.

“With a little commitment, the basic courses can be done in a week”. “All the courses are well structured and very clear”.

The theory is well explained, and there is plenty of exercises available to memorize the contents. When choosing the courses to follow, in particular, it is easy to find very flexible learning paths, although I believe that some courses are more important than others (web development, architecture specialist).

Vlad currently has several intermediate level certifications, such as Associate Reactive, Traditional Web Dev, and Mobile Dev.

 “I took the first certification independently while working at a previous company”. “In retrospect, I’m satisfied because it opened up a few doors for me. Its structure allows to better analyze the work in detail, optimizing the programming time “.

“I decided to continue my education because I needed to obtain the certifications so I could grow as a professional developer and enter the Outsystems associate program. Without these certificates, we would not have been able to bid for many projects of interest. In fact, it opened up an interesting slice of the market for us. At the moment I am getting ready to take a certification as a Dev Ops Engineer and as a Tech Lead ”.


Meet the team at Rawfish: Federica Busa

Last arrived in order of time, Federica is our freelancer. She is part of the UI / UX team and helps us to manage some of Rawfish’s most important projects.

Good day Federica, what’s your job here at RF?

I was tasked with taking care of CityPop, one of the flagship projects  Rawfish is managing right now. It’s a very “vertical” assignment, so it makes me busy every day I come here. Fortunately it is a very interesting job, so I do not feel stressed or fatigued.

Sarcedo, Trento and eventually Vicenza. Why choosing Rawfish, of all alternatives?

I had already joined briefly RF through a curricular internship when I was at university, Rawfish was almost an obligatory choice, all consdering the project they are taking care of. I do not think that with other companies I would have had the opportunity to work on such important tasks as it happens to me while working here.

However, I immediately felt that there was a connection while having the first interview, and I realized I was right when they offered me to work on CityPop, I had just become a freelancer and I joined gladly this adventure.

It looks like, you are enjoying working in here.

Yes it’s true, I feel really good, it is a dynamic environment where there is always something to do and learn. It didn’t take me much to get along with my colleagues, after a couple of months I felt already as if we had known each other for a lifetime. You can talk about everything, and colleagues are always willing to lend a hand.

I also love working on CityPop: it’s a young, modern and interesting project, it motivates me a lot to work on it. It is certainly valid and demanding, but I still hope to be able to follow some more projects in the future.

Let’s greet with a sentence that defines you.

“So, where is the UX here?” it is a phrase that I use every time I see something new, I’m afraid I’m a bit manic.


Annalisa Brunati working at Rawfish.

Meet the Team at Rawfish: Annalisa Brunati

Rawfish is a young company, and as such it is always looking for new talents to join its team. Today we talk to Annalisa Brunati, our UX / UI intern.

Your first step into the job market, Annalisa. What are your duties in here?

I support the UX / UI team, we design new interfaces and user experience for smartphone applications. You learn a lot by walking the “front line”, training your intuition and rational approach; the creative component of the work comes after long studies and it is an aspect of this world that I really appreciate.

You were lucky to find right away a job related to your studies. Why did you choose Rawfish?

I found out about the company by chance, through the university. I had a small shortlist of names to choose from for my curricular internship, and at first I was actually undecided, they all seemed like excellent choices. Then I saw on Rawfish's website the projects the company was managing, such as Mediolanum and Enel, and I realized that they were the right choice to put my skills at use. Moreover, it was exactly what the last courses I followed were all about, and therefore it seemed perfect even from an academic point of view, thought I was aware of my inexperience.

What is it like working at Rawfish? How do you value your experience?

Of course I did enjoy it. I immediately felt part of the team and they taught me everything there was to know, we did not lose a second. The environment is always very friendly, and if I have any problems I can talk openly about them. I arrived that I knew just how to use Windows, and now I am proficient with Mac and the most important software that we use here on a daily basis.

Any important project coming soon? What about your future?

At the moment I am still helping the team with many projects. The ones that engage me the most are certainly Z-Padel, BFT and Beautic. I don't know how much I'll be able to do still, since my apprenticeship contract will expire at the end of the summer, but I think I will keep in touch with Rawfish, or maybe even think about extending my time with them, but at the moment I can't say for sure. As per the future, being a UX / UI designer would not be bad, but I also take into consideration the possibility of switching to project managing, I like the idea of interfacing with clients.

Let's leave with your favorite phrase.

“Horray, a task!”. It is a phrase one of the characters from Bojack Horseman shouts. The context of the sentence is particular, but I like it because it indicates enthusiasm, and a little bit also my unhealthy obsession with productivity.


The things we dislike about Android

Some of us love Androids, some definitely don’t. Yet even for those who love it, this system is far from flawless.

Still the most popular operative system, mostly due to its richness and flexibilty, it loses some appeal when compared to more agile competitors as iOS.
We talked to our Android developers trying to understand what are the major limitations they encounter in their daily work. These are the main flaws they listed.

Fragmentation:

Android is, and must be, compatible with an infinite number of different hardware configurations. Sadly, that is the very reason it is problematic as well. As much as everyone likes to have an operating system that works well even on entry level devices, this never ending cycle of correction to solve compatibility problems, especially when dealing with very old APIs, is a burden to the workflow of developers, who cannot still guarantee true quality for the customer.

Managing interfaces all times, having to insert infinite checks to ensure compatibility and the exhausting management of the UI are all elements that work against the general compatibility of the system, instead of facilitating it.
Android continues to have a minimal functional support system, which limits the ability to intervene wheere there are compatibility and UI problems.

A system not as open as we wish it were:

In theory, we have a system that can be easily modified by developers, with beta versions of each app and quite a deal of freedom in modifying apps. The reality is quite different: to create a complete app, it is not enough to rely on open source code, but we need to consider also a long series of proprietary codes.
To be able to publish the app in the store, we must accept the entire protocol of the Google package, and consequently the access and their purchase is regulated by Google. The code is open if we consider the compatibility part, but from a development standpoint it’s a pretty duplicitous game.

The Kotlin experience:

It is the Android-specific programming language. In the beginning, Java was used, which was very practical since widely taught at the university, while Kotlin’s learning is left more to the initiative of the individual. Since Oracle sued Google, claiming they stole Java as their programming language, Google develops 85% of their work using Kotlin, (intentionally) poorly supporting Java. It came to the point the latest versions are totally incompatible with those currently supported (we are talking about Java 8 against Java 15).
Kotlin also greatly limits the professionalism of the individual developer, as it is too specific a language that “forces” you to work exclusively with Android. Our people all agree that supporting Java would have been a more functional, and perhaps even more honest, way to go.

Emulators:

Unlike what happens with IoS, in the Android environment the emulator totally “virtualizes” the machine. The problem is that being the emulator rooted in the very same hardware, it suffers the limitations of the very system in which the operation is performed.
With a poor support system, constant crashes and stability that is greatly reduced even with the addition of extra features, the whole thing is not worth the trouble.

Animations:

The team sees them as lame and generally as a store-copy of the iOS environment tools. Google has spent an infinite amount of time and energy creating features that a senior developer is unlikely to use. Having to spend almost all the time looking for the most useful option between different menus is an unnecessary time and energy consuming process. It is often much easier to write all the codes personally.

User experience:

There is no need to switch operating systems to feel lost. It is enough to switch from an Android phone to another, and we will often have to relearn from scratch how to use our new device. As if that weren’t enough, the aforementioned lack of serious and systematic updates often makes the use of Android frustrating.
Although many OEMs are working to improve the update system, the compatibility of the old phones is extremely low compared to the iOS equivalents, which affects also the resale value of the devices or their recovery. The fact that there are so many versions of Android prevents even the most skilled of developers from having an overview to correct this “malfunction”.

Device’s flaws:

The devices are not lacking in major flaws. First of all, the average lifespan of the very same, is quite lower than the equivalent of iOS devices. The battery is the sore point that creates the most problems, often further shortening the life of the smartphone. Planned obsolescence, poor optimization at the operational level, and problems caused by a scarcely fluid management of updates, very often cause an Android phone to issue good performance for just over two years.
Updates, when they occur, not only cause microdamages that accumulate over time, but make often the OS slow and incomplete. However, being Android an open source system, the continuous changes and variations between all versions force companies to continually revise the operating system to keep up with the times, and this extends the release times of new versions to never.
Last, but not least, is the interaction between the hardware and software components is tricky to say the least. It often happens that there are versions of android that are not optimally supported by the devices themselves. Google does not control the production and integration of hardware and software like Apple does. This is noticeable when you try to insert apps that stress the smartphone’s capabilities the most.

Waving quality:

As it is relatively simple to upload an app to the store (each app can be approved in less than 24 hours), safety and quality standards are often not too effective. It’s easy for quality apps to get lost among thousands of poor versions of them with the same features, and even worse, it makes it easy for unsafe or corrupt apps to be listed in the store. Greater quality control, similar to that operated by Apple, would greatly reduce the risks for the customer and improve the overall quality of the store.

A special thanks to our Android team: Francesco Fornasini (Lead), Marco Mardegan, Alessandro Persiano, Domenico Savino, Davide Pagin, Alessandro Sisto for their contibute to the discussion.

Photo by TheAverageTechGuy from Unsplash.