<?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 Eslam Nagy on Medium]]></title>
        <description><![CDATA[Stories by Eslam Nagy on Medium]]></description>
        <link>https://medium.com/@NagyCode?source=rss-a31becf6e863------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*A8r-uYaSA4lUeycqdevivA.jpeg</url>
            <title>Stories by Eslam Nagy on Medium</title>
            <link>https://medium.com/@NagyCode?source=rss-a31becf6e863------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 05:39:02 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@NagyCode/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[خلاصة موضوع Kotlin و Java]]></title>
            <link>https://medium.com/@NagyCode/%D8%AE%D9%84%D8%A7%D8%B5%D8%A9-%D9%85%D9%88%D8%B6%D9%88%D8%B9-kotlin-%D9%88-java-1b46d335e95a?source=rss-a31becf6e863------2</link>
            <guid isPermaLink="false">https://medium.com/p/1b46d335e95a</guid>
            <dc:creator><![CDATA[Eslam Nagy]]></dc:creator>
            <pubDate>Sat, 19 May 2018 18:13:23 GMT</pubDate>
            <atom:updated>2018-05-19T18:13:23.170Z</atom:updated>
            <content:encoded><![CDATA[<p>ببساطة ﻷن لاحظت فيه كلام كتير بعد مؤتمر جوجل الأخير .</p><p>أولا الموضوع هيكون طويل كعادة بوستاتي ﻷن هحاول اغطي فيه نقط كتير عشان نوصل للصورة الكاملة في النهاية .</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*txKKEwzdupBl_5SM8Cotfg.jpeg" /></figure><p>ثانيا خلونا نبدأ من الأول خالص بسؤال بسيط عشان نفهم الحكاية من أولها .</p><p>هو إيه الأندرويد دا ؟</p><p>الأندرويد عبارة عن Operating System مبني على نواة linux يعني يعتبر احدى مشتقات لينوكس .. ودا يعني ايه ؟</p><p>يعني نظريا وعمليا اي لغة برمجة قادرة على العمل على الاندرويد لكن في حالتين :</p><p>الحالة الأولى ان اللغة دي يكون عندها compiler له القدرة على عمل compile للكود بتاعها الى android machine code يعني لو عندي لغة X ليها كومبيلر بيطلع machine code يتوافق مع الاندرويد والهاردوير بتاع الموبايل التطبيق هيشتغل من ضمن اللغات دي هي C/C++ .</p><p>الحالة التانية : هي ان اللغة دي بتملك Virtual Machine مثبت داخل الاندرويد قادر على انه يقوم بإدارة وتشغيل كود اللغة يعني لو عندي لغة Y وبنيت ليها VM وثبته عالأندرويد كدا أنا اقدر اشغل تطبيقات لغة Y عالاندرويد ودا اللي استغلته منصة زي Xamarin من خلال عمل منصة mono vm المسؤولة عن تشغيل تطبيقات مكتوبة بلغة سي شارب عالاندرويد .</p><p>في الواقع الكلام دا ينطبق على اي نظام تشغيل مش بس عالاندرويد ودا ببساطة اللي بنسميه unmanaged code ودي اللغات اللي بتعمل كومبيل الى machine code يخص النظام مباشرة وبين ال managed code ودي اللغات اللي بتدور داخل VM زي جافا وسي شارب وبايثون و php الخ اي لغة بتحتاج تثبتلها بيئة عمل عشان تشغل تطبيقها فهي managed code .</p><p>من غير ما نفصل في الموضوع دا عشان محتاج تفاصيل كتير أنا يهمني النوع التاني اللي هو بيحتاج VM لأن النوع الأول اللي بيكومبيل الى Machine Code مباشرة له بعض المشاكل اللي بتخليني مش قادر اكتب تطبيق وانشره لكل الاجهزة بسبب بعض الأسباب اللي ممكن تخلي ال machine code دا يختلف من جهاز لأخر فتطبيقي ممكن ما يكونش مناسب لكل الاجهزة بالتالي انا محتاج VM اشتغل جواه .</p><p>طيب ايه دور الـ VM دا ؟</p><p>ببساطة بياخد كود لغة البرمجة يقوم بتحويله الى Machine Code يتناسب مع اختلافات الجهاز لأن زي ما قولنا الـ Machine Code دا ممكن يختلف بين جهازك وجهازي فهو بيقوم بتحويل التطبيق الى Machine Code على جهازك فيطلع كود يناسب جهازك دا أولا .</p><p>ثانيا بيوفر ليك إدارة ذاتية للكود انت مش محتاج تقوم بإدارة الذاكرة والكلام دا زي ما كنت هتحتاج لو اشتغلت بالنوع الأول فالـ VM بتدير الكود ليك .</p><p>ثالثا بتوفر ليك كلاسات مجهزة مسبقا تسهل عليك الدنيا وانت بتطور والأهم بتوفر ليك الـ API’s اللي هي عبارة مكتبات مكتوبة مسبقا بتوفرلك التعامل مع كل تفاصيل نظام التشغيل يعني لو عايز تتعامل مع كاميرا انت هنا مش محتاج تكتب كود يتعامل مع الهاردوير نفسه مباشرة انت يكفي تتعامل مع الـ API اللي بيوفرلك التعامل مع الكاميرا تقدر تعتبر الـ API هي بوابتك للتعامل مع نظام التشغيل بسهولة .</p><p>طيب ازاي لغة Java بتشتغل عالاندرويد من غير ما نسطب أي حاجة ؟</p><p>دا ﻷن الأندرويد بينزل مثبت فيه بشكل افتراضي من جوجل حاجة اسمها Dalvik-Vm .</p><p>ايه هو الـ Dalvik-Vm ؟ هو ببساطة Virtual Machine .</p><p>هل هو بيحول اكواد الـ Java الى Machine Code ؟</p><p>في الواقع ﻷ الـ Dalvik-Vm ما يعرفش حاجة اسمها جافا أصلا، الـ Dalvik بيتعامل مع حاجة اسمه Byte Code .</p><p>ايه هو الـ byte code ؟</p><p>ببساطة هو كود وسيط يشبه في تكوينة لغات البرمجة وفي وظيفته بالنسبة للـ VM الـ Machine Code، هو مش Machine Code طبعا هو مجرد كود شبيه في الفكرة لكن مخصص للـ VM نفسها هي اللي تقدر تفهمه وتحوله بعد كدا الى Machine Code حقيقي .</p><p>امال ايه علاقة الـ Java بالموضوع ؟</p><p>كل العلاقة ان جافا هي اللغة اللي جوجل اختارتها في البداية عشان تعمل ليها كومبيلر يقوم بتحويل كود الجافا الى byte code خاص بالـ dalvik-vm .</p><p>يعني عملية بناء تطبيق اندرويد ماهو الا لغة برمجة ما عندها القدرة تعملcompile الى byte code يخص الـ dalvik-vm فتطلعلي ملف apk بيحتوي داخل منه byte code يقدر يفهمه ويشغله الـ dalvik-vm .</p><p>ودا اللي لغة kotlin عملته جت هي كمان وعملت compiler يقوم بتحويل لغة kotlin الى byte code زي ما الجافا بتعمل فإصبحت بتطلع تطبيق مناسب ان الـ dalvik-vm يشغله .</p><p>هل لغة kotlin مبنية على جافا ؟</p><p>ﻷ لغة كوتلين لغة مستقلة كل علاقتها بالجافا ان من ضمن مميزاتها انها تقدر تعمل compile للكود بتاعها الى byte code يناسب الـ jvm بتاع لغة جافا فتقدر انك تبني بيها تطبيقات تستغل الأدوات المتاحة لجافا .</p><p>بنفس الفكرة انا اقدر اجيب أي لغة برمجة واعملها كومبيلر يحول الكود بتاعها الى byte code يخص dalvik-vm وبكدا اقدر اخليها تبني تطبيق اندرويد .</p><p>ومن دا نستنتج ان مفيش فرق بين بناء تطبيق بالجافا او الكوتلن الاتنين بيطلعوا byte code وفي النهاية الـ dalvik-vm ما يعرفش تطبيقك اتكتب بلغة ايه اصلا هو ملوش غير byte code وبس .</p><p>هل جوجل تقدر توقف Java ؟</p><p>نظريا تقدر أه في حالة انها تغير الـ byte code الخاص بال dalvik بحيث تنهي عمل جافا على الدالفيك وتعدل الكومبيلر بتاع kotlin بس دا معناه ان كل التطبيقات اللي في المتجر هتقف ومعدتش هتشتغل لانها هتبقى مكتوبة بالbyte code القديم ودي كارثة .</p><p>يعني عمليا جوجل ما تقدرش تاخد خطوة زي دي عالأقل دلوقتي خالص دا غير ان مش من مصلحتها اساسا تعمل كدا وتوقف جافا بالعكس مصلحتها انها تستمر لان جافا لغة ليها مجتمع ضخم .</p><p>امال جوجل تقدر تعمل ايه ؟</p><p>جوجل ممكن توقف دعم جافا رسميا في الاندرويد ستوديو عشان تتخلص من مشاكلها القانونية مع oracle يعني الاندرويد ستوديو نفسه هو اللي معتش يدعم الجافا .</p><p>لو دا حصل هنقدر نبرمج اندرويد بجافا ؟</p><p>طبعا لان هتفضل جافا قادرة على انها تعمل compile الى byte code يخصل الـ dalvik-vm حتى لو جوجل وقفت دعمها في الاندرويد ستوديو .</p><p>هنكتب تطبيقات ازاي لو معدتش مدعومة في الاندرويد ستوديو ؟</p><p>جافا مجتمعها ضخم جدا وقتها هيرجع استخدام eclipse مع الandroid-sdk أو ممكن يتم استمرار دعم اللغة داخل الاندرويد ستوديو بشكل غير رسمي من مجتمع المطورين الخاص بجافا بعيدا عن جوجل .</p><p>في النهاية المفروض اتعلم لغة ايه ؟</p><p>اللغة اللي تحبها جوجل بتحاول تدعم kotlin كلغة هتحل ليها مشاكل كتير لكنها لغة خارج الاندرويد ملهاش شعبية رغم انها بتدعم انها تكومبيل الى javascript والى native code لمعظم انظمة التشغيل فهي لغة كويسة بس ملهاش مجتمع ضخم حتى الان ولا استخدام حقيقي خارج الاندرويد .</p><p>جافا لغة كبيرة وليها شعبية واستخدام خارج الاندرويد لو انت حاببها ما تقلقش من كلام الناس اللي غالبا مش فاهمة الدنيا ماشية ازاي وبتقول ان الجافا هتقف دا شبه مستحيل جافا مستمرة في الاندرويد حتى لو بدون دعم رسمي من جوجل وعموما لو انت فاهم جافا وفاهم android architecture وحبيت تتعلم kotlin فالموضوع بالنسبالك مش هيتخطى شوية syntax جديدة هتتعلمهم في اسبوعين وخلاص لان هتبقى نفس هيكلة نظام التشغيل ونفس ال API’s وهيكلة التطبيق وكل شئ اللي هيفرق الsyntax بس .</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b46d335e95a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[الملخص المختصر من مؤتمر Google #IO18]]></title>
            <link>https://medium.com/@NagyCode/%D8%A7%D9%84%D9%85%D9%84%D8%AE%D8%B5-%D8%A7%D9%84%D9%85%D8%AE%D8%AA%D8%B5%D8%B1-%D9%85%D9%86-%D9%85%D8%A4%D8%AA%D9%85%D8%B1-google-io18-12221d4648d1?source=rss-a31becf6e863------2</link>
            <guid isPermaLink="false">https://medium.com/p/12221d4648d1</guid>
            <dc:creator><![CDATA[Eslam Nagy]]></dc:creator>
            <pubDate>Wed, 09 May 2018 12:49:29 GMT</pubDate>
            <atom:updated>2018-05-09T12:49:29.290Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GS260RdYtSe3YZliZpvuPw.png" /></figure><p>تحديثات Google Assistant<br>جوجل اسستنس هتتصل تحجز لك مواعيدك وهتتكلم مع المكان كأنها بني ادم عادي وتحجز لك الميعاد وترجع تقولك الحجز تم او لا وجوجل ذات نفسها عن طريق الـ اسيستنت هتتصل بالمحلات مثلا بشكل اوتماتك وتعرف المكان فاتح ولا لا أيام الأعياد مثلا وبمجرد متبحث عن المكان في جوجل هيقولك اذا كان فاتح ولا لا بشكل مؤكد<br>ـ<br>أكثر من 500 مليون جهاز حالياً فيهم جوجل اسيستنت<br>وهيتم إضافة 6 أصوات جديدة منهم صوت John Legend <br>جوجل اسيستنت هتقدر ترد على الأسئلة المركبة الي فيها كتر من طلب <br>ــ<br>تحديث Android P <br>تصميم جديد والاعتماد بشكل كبير على الـ AI <br>هيتعلم وهيحلل استخدامك للموبايل ويتوقع اللي هتعمله</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*2KP1wV2uXEfiRvqp.png" /></figure><p>:D وانهي برامج ممكن تستخدمها وانهي بتستخدمها قليل وفي انهي جزء من اليوم على حسب استخدامك عشان يقدر يوفر بطارية أكبر ويخلي الـ App يفتح اسرع ومش كل التطبيقات بتتخانق مين يشتغل ومين لا كل شويه</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*2m3DF28q3oS9OPNJ.png" /></figure><p>:D وهتقدر تتابع استخدامك بشكل كامل</p><p>تم اطلاقه نسخة Android Beta اليوم لأجهزة بيكسل وبعض اجهزة شركات<br>Oneplus و LG و Nokia و xiaomi و sony و oppo و essential<br>وسيتم الإطلاق الرسمي الخريف القادم <br>ـ<br>تحديثات Google Photos <br>جوجل فوتوز هيجمع صور اصاحبك في event معين مثلا ويقترح عليك انك تبعت لهم بدوسة واحدة على طول</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*q5uXwH-IY8ab3CWq.png" /></figure><p>:D محدش بعد كده هيقولك ابعتلي الصور</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*nA_NGO6W0eC3M-5A.png" /></figure><p>:D <br>اي ورقه هتصورها هيعزل الي حوليها ويحولها الى PDF<br>هتقدر تخليه يلون الصور القديمه الابيض والاسود ويخليها الوان <br>ـ<br>وهيتم إطلاق Smart Compose للـ Gmail <br>عن طريق الـ AI جوجل وانت بتكتب الميل تقدر تدوس Tab وهو هيكمل الكلام معاك سطر بسطر ويكتب الميل مكانك بناءً علي الكلام في الميلات</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*MzgV9Qy43ByEbZ-5.png" /></figure><p>(Y) <br>ـ<br>تحديثات Google Maps <br>المابس موجودة في 220 دولة وأكثر من 1 مليار مستخدم <br>جووجل مابس هتبدا تقولك المكان الي انت رايحه في مكان في ال Parking فاضي ولا لا</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*E_DqsPvQ_c17AT_4.png" /></figure><p>:D ويدور لك على مكان قريب تركن في <br>وهيبقي في حاجه اسمها Your match هتتعلم من الاماكن الي بتزورها وبناء على ده لما تيجي تشوف مكان علي الماب هتقولك المكان ده مناسب ليك بنسبه كام في الـ %</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*Gqv18TIMmAxI5jL1.png" /></figure><p>:D و هتقدر تفتح الكاميرا من المابس وهتعلم لك علي الاماكن وتوريك الاتجاهات الصحيحة وكمان توريك تقييمات المطاعم او المحلات الي حوليك وتعلملك عليهم <br>ـ<br>تحديث Google Lens <br>هتقدر تعمل Copy and Paste للـ Text من ورقه قدامك بالكاميرا</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/16/0*OMQy-MnasoUVi5wO.png" /></figure><p>:D <br>وهتقدر تصور مثلا شنطه اوجزمه او حتي اباجورة ويدورلك على حاجه بنفس الـ Style والالوان مثلا وGoogle lens و هتكون موجودة في موبايلات جوجل وتطبيق الكاميرا بتاع شركات Oneplus و LG و Nokia و xiaomi و sony و oppo و essential</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=12221d4648d1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[If you have an idea to write a new app, what is the next step?]]></title>
            <link>https://medium.com/@NagyCode/if-you-have-an-idea-to-write-a-new-app-what-is-the-next-step-7773f46119e7?source=rss-a31becf6e863------2</link>
            <guid isPermaLink="false">https://medium.com/p/7773f46119e7</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[udacity]]></category>
            <category><![CDATA[egypt]]></category>
            <category><![CDATA[make-an-app]]></category>
            <dc:creator><![CDATA[Eslam Nagy]]></dc:creator>
            <pubDate>Tue, 13 Feb 2018 07:07:42 GMT</pubDate>
            <atom:updated>2018-02-13T07:07:42.920Z</atom:updated>
            <content:encoded><![CDATA[<h3>Should you sit and start programming by yourself?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ySYFshvt3sJqS0uZhiHk8A.png" /></figure><p>Search for other apps and websites doing the same thing or something similar.</p><p>Do some basic research to figure out if users will actually want your product. Ask people you know if they’d use it. Identify your target market and look up how many people are in it.</p><p>If you want to make money, figure out how you’ll charge for your app or service. Will it be a paid app, freemium, sell virtual goods, sell add-on services…? If you don’t care about making money, skip this step.</p><p>Search for any open source that can be adapted to make your app faster.</p><p>Determine if you can actually feasibly write everything you need yourself. Is this a one person job or do you need help? Can you do the front end(s), back end, and database?</p><p>Will the app work well even for the first user or is it something like Facebook that’s only useful when lots of people are using it? If the latter, how are you going to get the first few users on your platform to start?</p><p>Figure out what you actually need to build to launch, your Minimum Viable Product. You don’t want to spend a bunch of time coding features your users may not want, and every extra day is a day someone could beat you to market.</p><p>Design your app. Figure out the features you’ll need, how they’ll interact, how the data will be structured, etc.</p><p>Start coding. Finally.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7773f46119e7" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>