<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sakout Mehdi on Medium]]></title>
        <description><![CDATA[Stories by Sakout Mehdi on Medium]]></description>
        <link>https://medium.com/@medyo80?source=rss-aff5dafb0705------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*P1-L8ftN-KMEFmJKZBeKIw.jpeg</url>
            <title>Stories by Sakout Mehdi on Medium</title>
            <link>https://medium.com/@medyo80?source=rss-aff5dafb0705------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 07 Jun 2026 11:50:47 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@medyo80/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[The State Of Software Development in Morocco, survey results (2019)]]></title>
            <link>https://medium.com/@medyo80/the-state-of-software-development-in-morocco-survey-results-2019-1196dc5bffbe?source=rss-aff5dafb0705------2</link>
            <guid isPermaLink="false">https://medium.com/p/1196dc5bffbe</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[surveys]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[infographics]]></category>
            <category><![CDATA[morocco]]></category>
            <dc:creator><![CDATA[Sakout Mehdi]]></dc:creator>
            <pubDate>Wed, 08 Jan 2020 23:27:13 GMT</pubDate>
            <atom:updated>2020-01-08T23:27:13.507Z</atom:updated>
            <content:encoded><![CDATA[<p>Last year (2019), we launched a survey asking the <a href="https://www.facebook.com/moroccode.ma/photos/a.1682535731974990/2418742865020936">Moroccode</a> community on the state of software development in Morocco. <strong>16 questions</strong> were asked about favorite technologies, studies level, salary… The survey was administered online on Google forms for a period of about six months and was answered by <strong>240 Moroccan developers.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nQ27NtZmENWCOT8F" /></figure><h3>Questions</h3><ul><li>What’s your current job role?</li><li>How many years of professional experience do you have?</li><li>How old are you?</li><li>How did you learn to code?</li><li>What is the highest degree you earned?</li><li>Which of these platforms do you use to learn how to code?</li><li>What operating system do you currently use?</li><li>What languages do you want to learn?</li><li>What technologies do you want to learn?</li><li>What’s your typical IDE or Text Editor?</li><li>What music do you listen to while working?</li><li>What is the thing you hate the most?</li><li>What annoys you the most about your current job/employer?</li><li>What do you look for in a job?</li><li>What is the size of the company you work for?</li><li>What is your current salary?</li></ul><h3>Results</h3><p>In this Infographic we summarized the answers of <strong>the Moroccan developers</strong> who were open to share details about their job preferences, favorite technologies… We hope this data will make you understand the Moroccan audience, the work culture they prefer and what technologies/languages are rising in the local market.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eT9xLsPkRJ9YWyBVVc73rQ.jpeg" /></figure><p><strong>HQ Image at</strong>: <a href="https://imgur.com/a/XcdL741">https://imgur.com/a/XcdL741</a></p><p>💡To read all participants answers, please visit the <strong>Google forms results </strong>at: <a href="http://bit.ly/developerma">http://bit.ly/developerma</a></p><p><strong>Thank you to all those who participated in this survey</strong></p><p>If you have any questions about the results please send an email to <a href="mailto:feedback@ocwconsortium.org">e</a>lmehdi.sakout+medium@gmail.com</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1196dc5bffbe" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 things to consider for a successful  Moroccan/MENA Mobile App]]></title>
            <link>https://medium.com/@medyo80/7-things-to-consider-for-a-successful-moroccan-mena-mobile-app-3309c0234137?source=rss-aff5dafb0705------2</link>
            <guid isPermaLink="false">https://medium.com/p/3309c0234137</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[mobile]]></category>
            <category><![CDATA[arabic]]></category>
            <category><![CDATA[mena]]></category>
            <dc:creator><![CDATA[Sakout Mehdi]]></dc:creator>
            <pubDate>Wed, 15 May 2019 13:50:00 GMT</pubDate>
            <atom:updated>2019-05-15T14:12:11.069Z</atom:updated>
            <content:encoded><![CDATA[<h3>7 things to consider for a successful Moroccan/MENA Mobile App</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*q7LzsMK9-yn_zGjaBMMH1w.png" /></figure><p>I spent more than 7 years crafting mobile apps for the Moroccan and MENA audiences. Most of them have good daily downloads and highly active users. In this article, I will distill 7 principles for increasing your chances of achieving the same results.</p><h3>1 — Arabic 👑</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FBLcaU8qyHGflYaTJ5z%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fstickers%2Fbilbareed-invitation-invite-visit-us-BLcaU8qyHGflYaTJ5z&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FBLcaU8qyHGflYaTJ5z%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="435" frameborder="0" scrolling="no"><a href="https://medium.com/media/2ffd0da7b7ab40e088914cbaef693e3a/href">https://medium.com/media/2ffd0da7b7ab40e088914cbaef693e3a/href</a></iframe><p>If your <strong>app targets</strong> the MENA audience, you should absolutely opt for Arabic as the main language for both: the app and the store listing (Google Play Store and Apple App store), English or french come after.</p><blockquote>If you talk to a man in a language he understands, that goes to his head. If you talk to him in his language, that goes to his heart. Nelson Mandela</blockquote><p>It’s true that English is gaining field when it comes to internet communication however when it comes to emotional decisions like downloading an app or buying a product… users, prefer to use platforms in `their` native languages¹.</p><blockquote>60% of Arabic speakers prefer browsing internet content in Arabic. That figure surges to 97 per cent in Saudi Arabia and Egypt.¹</blockquote><h3>2 — Android first, then iOS</h3><p>In 2019, that’s a fact, Android is the winner platform for mobile products in the MENA region, your app should definitely be present in the Google play store first unless your product market or business model is very specific.</p><p>This is the usage of Android per country:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ku47UyvcCpfd52jbREmGNg.png" /></figure><blockquote>Android: 🇪🇬 Egypt (80%), 🇲🇦 Morocco (90%), 🇩🇿 Algeria (95%), 🇸🇦 Saudi Arabia (75%), 🇹🇳 Tunisia (90%), 🇯🇴 Jordan (84%), 🇦🇪 United Arab Emirates (80%), 🇧🇭 Bahrain (80%), 🇮🇷 Iran (88%), 🇮🇶 Iraq (78%), 🇶🇦 Qatar (83%), 🇰🇼 Kuwait (73%)…</blockquote><p>Source: <a href="http://gs.statcounter.com/os-market-share/mobile/africa">http://gs.statcounter.com/os-market-share/mobile/africa</a></p><h3>3 — Western UI/UX is not always the best</h3><p>I believe that each region defines its own UI/UX principles based on the local culture and psychology that cannot be transferred while guaranteeing the same result. The MENA user is a new technologist, he/she wants to get straight to the point with less interaction and less UI sophistication (this is an experience based on A/B tests).</p><p>I would recommend an easy-going UI/UX, that displays all necessary data at once and that relies on onboarding each new feature (don’t over complicate things)</p><p>For more details on the subject, I highly recommend you to read this <a href="https://medium.freecodecamp.org/designing-for-the-arab-user-basic-arabic-ux-for-business-6ff29d4c7c60">article</a> by Anna Rubkiewicz</p><p>If your business 💰model relies on advertisement, make sure to find a balance between content and ads.</p><p>Not every empty spot is for adds!</p><h3>4 — Target old/weak devices too</h3><p>Unlike, the American and European market where technology is easily acquirable, the MENA market is deprived of this privilege. the MENA minimum wage doesn’t allow to easily upgrade the computer or phone (<a href="https://www.minimum-wage.org/international">$120</a> USD/month in Tunisia), so the user automatically tends to keep the same device for 2 or 3 years before thinking of changing it. Companies and developers should be aware of this fact by adapting the product to work seamlessly and smoothly on old and weak devices.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/450/1*IUgzc8G9ik79hhI12lC-Sw.jpeg" /></figure><h4>Most used phones in the MENA (<a href="https://www.appbrain.com/stats/top-android-phones-tablets-by-country">source</a>)</h4><p>Samsung Galaxy J1, Samsung Galaxy Prime Plus, Condor Plume P6 Pro LTE<br>iPhone 7, LP EVORA light, the similarity between these devices is low RAM (2GB), Weak processor and small storage space</p><h4>Most used Android versions in the MENA</h4><p>Lollipop (5.1), Marshmallow (6.0)</p><h3>5 — Moderate your updates</h3><p>Who would keep a 🐛 buggy app ? or even an app that keeps updating each day?<br>Many companies push updates in a high frequency, sometimes more than once a day and others push 1 per years.<br>Keep your app updates ratio between 2 and 4 weeks If it’s not a critical bug.</p><h3>6 — Reasonable app size</h3><p>Keep your app size reasonable, not all users have enough space to install a new app and if he does, he won’t hesitate to uninstall it at first need of data space.</p><p>Take an example of <a href="https://play.google.com/store/apps/details?id=com.mobiblanc.lydec">Lydec app</a>, a simple android app where the user could pay electricity and water plus some optional features eg invoices and news, this app size exceeds 58 MB (&gt; 100mb after installing it.) which could be compressed for less than 20mb by deleting redundant resources, optimizing heavy images, removing unused libraries and enabling proguard/R8</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FYzDlTnzZMAFfW%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fcommunity-season-2-jeff-winger-YzDlTnzZMAFfW&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FYzDlTnzZMAFfW%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="260" frameborder="0" scrolling="no"><a href="https://medium.com/media/a69179d06ff1f73574fc286e8f0f1b3f/href">https://medium.com/media/a69179d06ff1f73574fc286e8f0f1b3f/href</a></iframe><p>💡I personally would recommend a maximum size of 12mb, if you’re developing for Android, please export your application as an aab; Android App Bundles</p><h3>7 — Talk to your community</h3><p>Releasing your mobile application isn&#39;t the goal, don’t push and disappear, the user wants to express his feedback. Discuss, analyze, interact with the community and keep pivoting. This is the only secret to build a solid product and gain notoriety and of course a good play/app store rating ⭐⭐⭐⭐⭐</p><h4>Thank you for reading : )</h4><p><em>If you enjoyed this, please hit </em>♡<em> and </em><a href="https://medium.com/@medyo80">Follow</a><em> below. You can also reach out to me on twitter @</em><a href="https://twitter.com/MedyO80"><em>Medyo80</em></a></p><p>1: <a href="https://arabiangazette.com/an-online-arabic-content-revolution-in-the-making/">https://arabiangazette.com/an-online-arabic-content-revolution-in-the-making/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3309c0234137" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Set Up a Private Maven Repository For Free]]></title>
            <link>https://medium.com/@medyo80/how-to-set-up-a-private-maven-repository-for-free-6d346bdcebea?source=rss-aff5dafb0705------2</link>
            <guid isPermaLink="false">https://medium.com/p/6d346bdcebea</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[maven]]></category>
            <category><![CDATA[gradle]]></category>
            <dc:creator><![CDATA[Sakout Mehdi]]></dc:creator>
            <pubDate>Mon, 09 May 2016 22:57:21 GMT</pubDate>
            <atom:updated>2020-09-11T10:54:53.562Z</atom:updated>
            <content:encoded><![CDATA[<p>(This article has been originally published at <a href="https://www.mehdisakout.com/posts/how-to-set-up-a-private-maven-repository-for-free/">MehdiSakout.com</a>)</p><p>Being a fan of factorisation, I recently decided to extract some redundant modules from my released Android Apps and make them standalone to be used in future projects. I ended up having easy to use dependencies like this compile {libraryName}, seems cool ? nah ?</p><p>This guide applies only for private projects that you’d like to keep in secret, or share solely with agency teammates… if you’d like to go public, check Bintray, Maven Central or Jitpack.</p><blockquote><em>At the end of this guide, you’ll be able to have something like :compile “my.company.library:version”</em></blockquote><p>Ready ? Let’s get Go</p><p>My current configuration is :</p><ul><li>Gradle 2.11</li><li>Android Plugin for Gradle 2.1.0-beta1</li><li>Android Studio 2.1</li><li>MacOS X 10.10.5</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/740/0*yT8TqwKDLHBRSlsO.png" /></figure><p>Instead of building a private maven server repository which costs time and money, I’ve opted for a self hosted version called named<a href="https://mymavenrepo.com/">MyMavenRepo.com</a>, At the time of writing this article, the service remains free and offers 250mb of data plus supports maven and gradle build types.</p><h4>1 — Setup an Account</h4><p>Okay, start by creating a new account, you’ll receive the password in your inbox.</p><h4>2 — Setup Dev Environment</h4><p>Once on your dashboard, you’ll identify two different URLs:</p><p>Read URL : <a href="https://mymavenrepo.com/repo/myUniqueID/">https://mymavenrepo.com/repo/myUniqueID/</a><br>Write URL : <a href="https://mymavenrepo.com/repo/myUniqueID/">https://mymavenrepo.com/repo/myUniqueID/</a></p><p>These urls are used to read/write data to our repository, they come with a unique ID to identify your repository, make sure to keep them private, if you don’t set any permissions, anyone could access your content.</p><p>On the HTTP Basic Auth Section, click on enable HTTP Basic Authto be able to restrict access by username and password.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LEbLynhpulN-IzgC.png" /></figure><p>Once done, you’ll have to setup the authentification details, Click onAdd User and define your default user for both READ and WRITE urls, I won’t cover this part, it’s really up to you.</p><p>Now, it’s time to export all these variables to our gradle.properties</p><pre>$ vim .gradle/gradle.properties</pre><p>Change with your password and repo url:</p><pre>myMavenRepoReadPassword=myPassword<br>myMavenRepoWritePassword= myPassword<br>myMavenRepoReadUrl=https://mymavenrepo.com/repo/uniqueID/<br>myMavenRepoWriteUrl=https://mymavenrepo.com/repo/uniqueID/</pre><h4>3 — Update your dependency project and Push Content</h4><p>Upgrade your library build.gradle file like below</p><pre>apply plugin: &#39;maven-publish&#39;<br>   <br>group = &#39;my.company&#39;<br>archivesBaseName = &#39;android-library&#39;<br>version = &#39;0.1.4-SNAPSHOT&#39;<br>   <br>publishing {<br>    repositories {<br>        maven {<br>            url myMavenRepoWriteUrl<br>            credentials {<br>                username &#39;myMavenRepo&#39;<br>                password myMavenRepoReadPassword<br>            }<br>        }<br>    }<br>   <br>    publications {<br>        aar(MavenPublication) {<br>            groupId group<br>            artifactId archivesBaseName<br>            version project.version<br>         <br>         // Optional<br>            pom.withXml {<br>                asNode().appendNode(&#39;name&#39;,&#39;Dependency Name&#39;)<br>                asNode().appendNode(&#39;description&#39;,&#39;Dependency Description&#39;)<br>                asNode().appendNode(&#39;url&#39;,&#39;http://medyo.github.com&#39;)<br>            }</pre><pre>            artifact(&quot;$buildDir/outputs/aar/${archivesBaseName}-release.aar&quot;)        }<br>    }<br>}</pre><p>Ready ? Go</p><pre>./gradlew clean build publish</pre><p>If things go like expected, you should see in log the remote path of your dependency</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/810/0*OoYJI3z0hKRwglV-.png" /></figure><h4>4 — Distribution</h4><p>Hooray ! You’re done, your library is ready to be shared with your teammates, Just Ask them to upgrade their gradle files</p><p>Add this to your top build.gradle file:</p><pre>maven {<br>   url &quot;https://mymavenrepo.com/repo/UniqueID/&quot;<br>   credentials {<br>      username = &#39;myMavenRepo&#39;<br>      password = &#39;********&#39;<br>   }<br>}</pre><p>And integrate your dependency like you you’ve always done :</p><pre>compile &#39;my.company:android-library:0.1.4-SNAPSHOT&#39;</pre><p>For any suggestions or questions, please post your comment below.</p><p>Thanks</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6d346bdcebea" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>