[iOS] Make your app suitable for UI auto-testing

If you want to build an efficient UI auto-testing process for your project, it’s essential to first consider how testable your application is generally, as well as how you can write effective UI tests.

Read more

How the introduction of notification runtime permissions in Android 13 affects conversion from push notifications

Like many Android developers, we’re used to the notification bar being the secondary point of focus after the launcher. Yet with the release of Android 13, the rules of the game have changed. 

Read more

Switching from Java to Kotlin: the most common mistake

In this article, we’ll discuss a common mistake beginners make when switching from Java to Kotlin for the first time. I often notice that people who have recently switched from Java to Kotlin become fascinated by its idiomaticity and start using it where they shouldn’t. 
 

Read more

How to reduce the bloated testing process

As your application grows, so does the flow of tasks for QA. And if you don’t reduce that amount of work in time, it will begin to threaten your releases. And just resemble a sprawling bush that’s not being looked after. I will tell you how we reduced the regression testing time from 5 to 3 days in a couple of months maintaining quality and relieving the level of stress for the QA team.

Read more

Developing and Deploying a Replacement for Google reCaptcha for a Growing Product

As your app’s audience grows, bots and scammers become increasingly interested in your app. When we needed a scalable tool for breaking bots and users apart, we found it way too expensive to cover all the bases with reCaptcha, which we were already using. So here is what we did.

Read more

Keeping up with industry trends through internal meetups

In an ideal world, a perfect developer would find time to read professional articles, attend conferences, and work on pet projects. This is not always the case in the real world: fatigue at work, personal and family issues, going to a doctor — there are a million things to do and reasons to say “not today.”

That’s why our Android team created the “developing together” internal meetup format. We either prepare short presentations on new topics or watch professional videos together. We have time to do things after work, and our conscience isn’t burdened. Furthermore, we can discuss the applicability of what we heard immediately with our colleagues.

Read more

Experimenting with Push Notifications for User Retention: Tested on a Million-Strong Audience

What is more critical in a push notification — the text or the picture? How does it depend on the mobile platform? When can sending push messages more frequently get better results? What mistakes can be made while you’re figuring it all out? Learn about it in this piece by the team developing the push notification system for FunCorp entertainment apps.
 

Read more

Supplementing the test checklist when updating the icon and splash screen in mobile apps

Since most of our users are from the USA, FunCorp decided to update its icon and splash screen for the Halloween holidays last year. Let’s recall that story. The task seemed trivial, but in the process, we found some more cases and grew our essential checklist from 8 to 13 items (attached).

Read more

Jetpack Microbenchmark: Code Performance Testing

I’ll explain how the Microbenchmark library works and show examples of how to use it. Perhaps this will help you evaluate performance and solve controversial situations during the code review. 
 

Read more

Finding a picture in an image without marking it up?

Read more

Onboarding a Senior QA: week-by-week plan

Over the past 4 years, we’ve developed an adaptation process enjoyed even by ultra-experienced newcomers. Today, we’ll share its main stages and a basic checklist. You can easily adjust them to fit engineers of any level that you hire.

Read more

Features of Practical Use of Various Algorithms of the Multi-Armed Bandit

Most articles about the algorithms of the multi-armed bandit are too academic. They are filled with formulas and seem to imply that we have an immutable set of handles for pulling and n→∞ attempts. I will try to talk about these algorithms from the point of view of an ordinary developer, taking into account the real conditions in which our iFunny application for recommending memes works.

Read more

Stopping NSZombie Invasion (Code Included)

We share the zombie object detection mechanism we made for the iFunny app, and present tips for those who also want to get rid of this issue. So you turn on your laptop, open Crashlytics, and voila: EXC_BAD_ACCESS objc_release… What now?

Read more

Working with Large Images in Android

Imagine how much memory space a 10k-pixel comic book takes up. And now imagine that you can’t compress it because if you did, it would lose too much quality and become unreadable. Curious how we at FUNCORP deal with this? Then read on!

Read more

Ten Mistakes to Avoid When Creating a Recommendation System

We’ve been long working on improving the user experience in UGC products with machine learning. Here are our ten key lessons of implementing recommendation systems in business to build a really good product.

Read more

What iOS Developers Should Be Prepared For When Integrating In-App Advertising in 2022

The iOS team of iFunny has gone from a completely ad-free model to using a variety of ad networks and formats in their popular entertainment app. In this article, we will discuss some of the less-apparent nuances of working with advertising SDKs that can affect the user experience and performance of your product and share the code that will help you fix them.

Read more

Deep Learning with a Small Training Batch (or Lack Thereof)

Overview of self-supervised methods.

While the demand for neural networks is growing, most state-of-the-art approaches to adapt them to business needs often lag, hindered by insufficient or absent markup. Supervised learning is hardly feasible in this situation, and standard unsupervised methods won’t work for most of your tasks. This is where self-supervised plans come to the rescue. Depending on the task, they require next to no markup or none at all.

Read more

How Do You Grow a Senior QA on Your Team?

Read more

Practical Guide to Create a Two-Layered Recommendation System

A developer’s perspective (MLOps inside)

At iFunny, we are trying to compose the best possible feed of memes and funny videos. To rate our job, people use smile/dislike buttons and comments. Some of them even post memes about our efforts.

Read more

Putting a two-layered recommendation system into production. Bonus: we reveal the dataset!

Recommendation systems will always stay relevant — users want to see personalized content, the best of the catalog (in the case of our iFunny app — trending memes and jokes). Our team is testing dozens of hypotheses on how a smart feed can improve user experience. This article will tell you how we implemented the second-ranking level of the model above the collaborative one: what difficulties we encountered, and how they affected the metrics.

Read more

11 Traits of a Senior QA Engineer

Founded on years of work experience in testing

There is a tremendous variety of QA Engineer vacancies, ranging from junior to lead tester and even to principal QA Engineer. We’re often asked what qualities a senior-level tester should have compared to junior or middle-level ones. Let’s try to answer this.

Read more

Detecting image duplicates

The articles that will come in handy

Approximately 100,000 units of varying content come through our iFunny app daily, and every single one of them needs to be checked. We have already dealt with forbidden imagery by creating a classifier that automatically bans it. Next up — old memes, reuploads, and straight-up doubles that users try to sneak past the moderation.

To get rid of those, we have introduced a duplicate detection system. It had already gone through several iterations, but at some point, we realized it was impossible to put version-to-version improvements in proper perspective. And so we ventured into the Net, searching for books and articles that would allow us to examine currently existing approaches to duplicate detection and — most importantly — to their quality assessment. You can see what we’ve found below.

Read more

Do you want some Prebid?

FUNCORP’s services and advertising infrastructure have recently undergone significant changes. In addition to the Prebid Mobile, we now also support and develop the Prebid Server to work with our apps.

We chose Prebid because we’ve been using its Software Development Kit for a long time and have enough experience and competence in working with it. This expertise allows us to improve and develop the service without compromising its stability. As a result, Prebid has become one of the critical services within our infrastructure.

Read more

Decentralized Webpack Configuration

It is pretty standard that as a project grows, so does the complexity of its build. Too many different technologies, third-party components, libraries, lints, server-side rendering, and project-specific nuances — as a result of all this, the configuration of a build may involve more than a thousand strings.

Read more

Image clustering using CLIP neural network

This article explains how you can automatically divide a dataset of images into clusters classified by qualitative contextual feature, thanks to embeddings from the much talked about neural network called CLIP created by Elon Musk’s company. I will give you an example using the content from our iFunny app.

Read more

The Easy Way to Remove Private Data

The right to be forgotten by the User’s request

There are different ways to remove a user’s personal information at the user’s request to make a product compliant with the CCPA or GDPR. The most basic method is to handle every request received by mail manually. The important thing is to make sure the process is as straightforward as it can be and clear to the user. So a little automation is not such a bad idea.

Read more

The 2021 Year in Review in Tech

In 2020, for the first time since World War II, the world was faced with an epic, uncontrollable crisis. The overwhelming majority of the world’s commercial industries, including the tech industry, have had to deal with the negative impact of the pandemic.

Read more

App Tracking Transparency: What has changed in the wake of Apple’s new privacy policy

Apple set the entire mobile advertising market on edge last year when it announced the pending enactment of its new privacy policy for the App Store. From now on, app developers are required to seek users’ permission to track their devices for advertisers (yes, that’s the controversial IDFA). The new deal, delayed several times, was finally enacted at the beginning of this year.

Read more

Protection from DDoS attacks

And why it is useless

In this piece, we’ll use a plain example to illustrate the existing types of DDoS attacks, and how businesses try to fend them off.

DDoS is a type of internet attack capable of disrupting anything from a phone booth to the Pentagon for those unfamiliar with the subject. A total of 5,351,930 DDoS attacks were recorded in Q1 2021 alone. The average attack duration was 50 minutes, representing a 31% increase.

Read more

What a safe working environment actually means

At FUNCORP, we are contributing much to creating a safe and caring working environment.

It's not only about team building, serving food in the office, and other fancy things a social package company provides. It's also about nurturing an atmosphere of open communication, process transparency, feedback culture, and trust between co-workers.

Read more

How to Classify Data Without Markup

iFunny users upload about 1,000,000 pieces of content to the app every day, including not only memes but also racism, violence, pornography, and other inappropriate material.

Previously, we checked all this manually, but now we are developing automatic moderation based on convolutional neural networks. We have already trained the system to divide content into three classes: it recognizes what can be included in user feeds, what needs to be removed, and what is hidden from the shared feed. To make the algorithms more accurate, we decided to add a specification for removing content that did not have such markup before.

Read more

Testing Your Implementation on Ad Networks

Testing ad integrations is quite a tedious process. Since we work with third-party SDKs that can hardly be controlled, it can be challenging to automate the testing process. Nevertheless, to reduce testing time, we have developed and implemented a debug panel, which we will discuss in this article.

Read more

International Women’s Day: Choosing to Challenge

Year after year, March 8th is celebrated as International Women’s Day all over the world. It marks the social, economic, cultural, and political achievements of women while highlighting the problems they face in day-to-day life and the professional environment. The day also marks a call to action for accelerating gender parity.

Read more

Updates to Our Ad Transparency, Efforts, and Findings

FunCorp is fully committed and continuing its focus on providing ad transparency. In November 2020, we responded to an article published by Pixalate. As we previously noted in our blog post, we strongly disagree with the assertions and conclusions stated in Pixalate's article. After conducting our internal investigation, findings from our third-party experts, and soliciting feedback from our ad partners and clients, we have found essential inconsistencies and discrepancies between the article's allegations and how iFunny functions. These findings further confirm that iFunny did not and could not generate the purported fraudulent ad traffic.

Read more

The Moderation System in UGC Services

How we process a colossal amount of content

The various social media channels and content sharing platforms all over the internet have paved the way for a whole new era of self-expression. Today, anyone can make videos, live stream, express themselves on social media platforms, or create content. In fact, according to a study from Comscore, when users create and share content on social media channels, they get 28% higher engagement compared to standard company posts.

Read more

FunCorp responds to false allegations in the media

Setting the record straight on iFunny

FunCorp, the leading global developer of entertainment tech products and apps, has been working in the entertainment technology field for over 16 years. FunCorp was started from a foundation of honesty in doing business and it prides itself on compliance with not only all existing laws, but the industry’s best practices. These values are ingrained our company. Since 2011, we have been one of the leaders of the mobile entertainment industry, with products spanning half the globe. We have always been mindful of our responsibility and we have always acted according to the principle "to make the world a better place.”

Read more

Why do recommendation systems become so important?

Leading up to TikTok’s potential sale in the U.S., unnoticed by many, there was a flash of news that ByteDance refused to disclose its recommendation algorithm and sell it as part of the American company. On the one hand, it’s a small thing, as most of the algorithms were developed in the last 70–80 years. The company that will buy TikTok will get a huge audience. On the other hand, tech companies and their recommendation systems are of great value. Let’s find out why.

Read more

How big data works?

How do we use it at FunCorp, and why it’s one of our most important tools

Going by the most recent reports, the number of users for smartphones will hit a whopping 3.8 billion by the year 2021. This sweeping increase in smartphone users has also led to a rising demand for better mobile apps. These modern apps also use tremendous amounts of data, and thus, a robust management tool for analyzing and managing this data has become a necessity. And this is where the use of Big Data technology for building apps comes into the picture.

Read more

The tech sector: Five pros & cons of the "new" remote workplace

The results after six months into the pandemic

Although the COVID-19 pandemic has led to economic, health, and social devastation, it has also created an unprecedented opportunity: to run the world's biggest-ever workplace experiment.

Read more

How machine learning affects social media content?

What was once seen as fiction in scientific movies has become a reality and has gained popularity across various sectors. Your smartphones, mobile applications, vehicles, and many other daily consumer items use AI to build essential parts of their business or product around machine learning (ML). Even more so, becoming more integrated into many aspects of social media AI is far from replacing human touch in social media. It is increasing both the quantity and quality of online interactions between businesses and their customers.

Read more

A look ahead: Amidst the global pandemic is digital ad spend going up?

US digital ad spending has been growing at a double-digit rate for years even since the last recession. But the pandemic has changed all that. In April 2020 in the height of COVID-19, we took a look at how the pandemic if at all has had any impact on ad spending. Digital media consumption boomed as soon as lockdowns and stay-at-home orders hit various parts of the world from February through April. In mid-April, we shared information with VentureBeat regarding the fall of the advertising market by 20-30% YoY and 40-50% of the planned one. These numbers were indirectly confirmed, for example, by Twitter reports for the second quarter.

Read more

Is The Future In Anonymous Social Apps?

CIO of FunCorp, a mobile entertainment app development company, oversees the growth of UGC platforms with AI/ML content feed aggregation.

Read more

MVP by one developer’s POV

With the vast competition of digital products and the high speed of launching new ones, it is necessary to quickly and cheaply test the viability of product ideas. In this article, I will share my experience of creating an MVP on my own, i.e., in fact, by one iOS developer, about how I was looking for a balance while creating MVP, about tools, difficulties, and their solution. If you are planning to implement the first projects in mobile development or add a new branch of functionality to an existing product, this article is for you.

Read more

The Future of the Digital Media Landscape

2020 was supposed to be an exceptional year for digital media. In the mass media, there appears to be more news about various companies downsizing. Although the situation is very unpleasant, it’s very predictable while only needing a small event trigger it. In recent years, there came considerably more venture money than projects, and many companies have used it without investing the money they received into the company’s fundamental values. Part of this can be attributed to not having a reliable business model and, in return, only providing enough to survive merely.

Read more

The Coronavirus Impact on Marketing Budgets

The spread of the Coronavirus (COVID-19) is sending shock waves across the globe as we all try to adapt to a new reality. And with these challenging times, businesses are scrambling to figure out what the future means. One essential item is what will 2020 look like for mobile apps, and what will be the impact of the pandemic on their marketing budgets? With so many unknown factors arising from this unprecedented global event, it’s too soon to answer this accurately. However, when it comes to mobile app usage, there are clear signs of increasing audience activity due to quarantine. Although this is a positive for some businesses, things aren’t that simple.

Read more

A closer look: FunCorp global teams switched to remote work in one day

The Coronavirus (COVID-19) created huge impacts from people’s daily lives to the modern day workplace. On March 16, 2020, FunCorp switched to remote work. We decided to take this step, weigh the risks and what difficulties we faced in the first week.

Read more

COVID-19’s Impact on Social Media Usage

The Coronavirus (COVID-19) has significantly changed life as we know it. Globally, we have seen it change in how we interact with others. Almost overnight, schools were closed, companies told employees to work remotely and people are being told not to go outside.

Read more